NSImage разного размера в коде, отличном от показанного Finder/Preview

У меня есть пара изображений, которые я использую в своем приложении (одно из них прилагается). Странно то, что реальный размер изображения (показанный искателем и предварительным просмотром) составляет 1200x701 px.

Когда я получаю доступ к изображению из кода и его размеру, я получаю 360x210px. Что здесь происходит?

Код, который я использую, чтобы получить размер изображения:


NSImage *newImg =  [[NSImage alloc] initWithContentsOfURL:
                   [NSURL URLFromPasteboard:[sender draggingPasteboard]]];
float h = [newImg size].height; //height is 210px - should be 701px
float w = [newImg size].width;  //width is 320px - should be 1200px

Содержимое newImg — это то же самое изображение, которое было указано и загружено — я все равно показываю его в NSImageView, поэтому я вижу. Просто размер, взятый с -size, неверен.

Это изображение:

http://www.tomaszkrasnyk.yoyo.pl/image.jpg


person krasnyk    schedule 07.06.2010    source источник


Ответы (2)


Я считаю, что -[размер NSImage] возвращает размер в точках, а не в пикселях. Вот почему NSImageRep имеет как метод размера, так и методы PixelHigh и PixelWide. Ваше изображение, по-видимому, не имеет разрешения 72 dpi.

person JWWalker    schedule 07.06.2010

NSImage может содержать несколько представлений одного и того же изображения, каждое в разных размерах. Я бы посмотрел на метод -representations для NSImage, а затем посмотрел на каждый объект NSImageRep, возвращаемый в массиве, чтобы увидеть, что у него есть.

person Dave DeLong    schedule 07.06.2010