Получение NSImage из CGImageRef - PullRequest
25 голосов
/ 01 февраля 2012

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

1 Ответ

46 голосов
/ 01 февраля 2012

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

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

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

...