2010-06-07 53 views
3

我有一些圖片在我的應用程序中使用(其中一個是附加的)。奇怪的是,真正的圖像大小(由finder和預覽顯示)是1200x701像素。NSImage Finder/Preview中顯示代碼不同的大小

當我從代碼中訪問圖片時,我的尺寸爲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拍攝的尺寸是錯誤的。

這是圖像:

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

回答

6

我相信 - [NSImage size]以磅爲單位返回大小,而不是像素。這就是爲什麼NSImageRep具有size方法和pixelsHigh和pixelsWide方法的原因。您的圖像顯然不是72 dpi分辨率。

0

NSImage一種可以包含在同一圖像的多個表示,每一個在不同的尺寸。我會看看NSImage上的-representations方法,然後查看數組中返回的每個NSImageRep對象以查看它的全部內容。

1
NSImageRep *imgRep = [NSImageRep imageRepWithContentsOfFile:imagePath]; 
int imageWidth = (int)[imgRep pixelsWide]; 
int imageHeight = (int)[imgRep pixelsHigh]; 
imgRep = nil; 

NSLog(@"original image width: %d",imageWidth); 
NSLog(@"original image height: %d",imageHeight); 
相關問題