Подтвердить что ты не робот

Получение NSImage из CGImageRef

Я пытаюсь обработать изображение в CoreGraphics, а затем вернуть обработанное изображение обратно в NSImage для сохранения и отображения. У меня достаточно ресурсов на то, как выполнять эти функции в iOS, но методы-помощники, кажется, отсутствуют в NSImage. В iOS метод класса imageWithCGImage:, как вы можете это сделать в Mac OS?

4b9b3361

Ответ 1

Метод сопоставления в NSImage равен initWithCGImage:size:.

Второй аргумент принимает размер изображения в точках. Масштабный коэффициент между размером в пикселях (CGImage) и размером в точках. Так, например, если у вас есть CGImage 100 × 100px и размер (NSSize){ 50.0, 50.0 }, размер изображения будет 50 точек и двойного разрешения.

Обычно вам нужно просто передать размер в пикселях (из CGImage) как размер в точках. Для обработки нескольких масштабных коэффициентов лучше использовать один NSImage с несколькими NSImageReps, например, что вы получаете от -[NSWorkspace iconForFileType:] для большинства типов или от создания NSImage из типичного файла .icns.