4

アプリケーションで使用する画像がいくつかあります(そのうちの1つが添付されています)。奇妙なことに、実際の画像サイズ (ファインダーとプレビューで表示) は 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

4

3 に答える 3

7

-[NSImage size] はサイズをピクセルではなくポイントで返すと思います。そのため、NSImageRep には size メソッドと、pixelsHigh および pixelWide メソッドの両方があります。あなたの画像は明らかに 72 dpi の解像度ではありません。

于 2010-06-07T16:11:07.997 に答える
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);
于 2011-12-12T12:33:38.510 に答える
0

には、同じイメージのNSImage複数の表現を、それぞれ異なるサイズで含めることができます。-representationsメソッド onを調べてから、配列に返されたNSImage各オブジェクトを調べて、その内容を確認します。NSImageRep

于 2010-06-07T16:01:37.723 に答える