Я пытаюсь обработать изображение в CoreGraphics, а затем вернуть обработанное изображение обратно в NSImage
для сохранения и отображения. У меня достаточно ресурсов на то, как выполнять эти функции в iOS, но методы-помощники, кажется, отсутствуют в NSImage
. В iOS метод класса imageWithCGImage:
, как вы можете это сделать в Mac OS?
Получение NSImage из CGImageRef
Ответ 1
Метод сопоставления в NSImage равен initWithCGImage:size:
.
Второй аргумент принимает размер изображения в точках. Масштабный коэффициент между размером в пикселях (CGImage) и размером в точках. Так, например, если у вас есть CGImage 100 × 100px и размер (NSSize){ 50.0, 50.0 }
, размер изображения будет 50 точек и двойного разрешения.
Обычно вам нужно просто передать размер в пикселях (из CGImage) как размер в точках. Для обработки нескольких масштабных коэффициентов лучше использовать один NSImage с несколькими NSImageReps, например, что вы получаете от -[NSWorkspace iconForFileType:]
для большинства типов или от создания NSImage из типичного файла .icns.