2012-05-13 3 views
1

MacOS 10.7.4 поставляется с новыми значками, имеющими изображения в 144 DPI. Плохо то, что когда я загружаю один из этих значков в NSImage, я получаю только реплики размером 512 пикселей. Я имею в виду: я загружаю файл icns размером 1024px/144dpi в NSImage, а затем я спрашиваю каждую репутацию изображения за свой размер ... no rep имеет размер 1024px, я получаю только размеры с макс. из 512px (независимо от того, имеет ли rep разрешение 72dpi, а не 144dpi: на самом деле новые значки в 10.7.4, такие как TextEdit или Automator, имеют повторы для обоих разрешений для каждого размера, за исключением 1024px, который существует в единственном представлении при 144dpi).NSImageRep неправильное разрешение?

Whay NSImageRep похоже, что он не понимает его реального разрешения? Почему я получаю эту проблему только для 1024px/144dpi, а не, например, для 512px/144dpi?

Если я прочитал TIFFRepresentation в NSImage и я записать его обратно в файл я получаю правильный 1024px/144dpi TIFF файл, а если я пишу то же NSImage идущего через CGImageSource/CGImageDestination, как kUTTypeTIFF я получаю 1024px/72dpi файл.

Все эти вещи заставляют меня очень смущаться.

Большое спасибо

ответ

4

Документах для -[NSImageRep size] сказать:

Размер представления изображения, измеряется в точках в пространстве координат пользователя.

(Выделено.)

Это не измерение в пикселях. Это измерение в точках, поэтому изображение 1024 пикселей при 144 dpi мер 512 баллов, когда точки 72 dpi.

Вы хотите запросить методы -pixelsWide и -pixelsHigh (если вы действительно интересуетесь размерами пикселей, часто не должны).