nsimageサイズは間違っています
-
03-10-2019 - |
質問
ここで本当に基本的なものが足りないと思います。私が知っている合法的なURL/パスでこれを行うと、存在します:
NSImage* img = [[NSImage alloc] initWithContentsOfFile:[[selectedItem url] path]];
NSLog(@"Image width: %d height: %d", [img size].width, [img size].height);
次に、幅は-2080177216と高さ0であるとコンソールに報告されます。幅は実際には50、高さ50であることはわかっています。最初の表現とそれは同じめちゃくちゃな値を返しました。どうして画像が適切にロードされていないのですか?
解決
size
メソッドはandを返します NSSize
, 、その構造 width
と height
メンバーはタイプです float
. 。あなたはそれらを扱っています int
. 。使用する %f
そして、すべてがうまくいくはずです。
他のヒント
これは助けますか?
setSize:
画像の幅と高さを設定します。
- (void)setSize:(NSSize)aSize
討論:
nsimageオブジェクトのサイズは、使用する前に設定する必要があります。画像表現が追加されたときに画像のサイズがまだ設定されていない場合、サイズは画像表現のデータから取得されます。 EPS画像の場合、サイズは画像の境界ボックスから取得されます。 TIFF画像の場合、サイズはImageLengthとImageWidth属性から取得されます。
NSIMAGEが使用された後のサイズを変更すると、画像が効果的にサイズを変更します。サイズを変更すると、すべてのキャッシュが無効になり、解放されます。画像が次に合成されると、選択した表現は、キャッシュを再現するためにオフスクリーンウィンドウにそれ自体を描きます。
Mac OS X v10.0以降で利用できる可用性。参照してください
見る nsimageサイズいくつかの写真で本物のサイズではありませんか?
Nsimagerepを繰り返して、最大の発見されたものからサイズを設定する必要があります。