1

NSViewサブビューのdrawRectを使用して、テクスチャアトラスをアプリにロードしています。

NSImage *imageFromBundle = [NSImage imageNamed:@"sheet1.png"];
[self setNeedsDisplay:YES];
NSSize isize = [imageFromBundle size];
[imageFromBundle drawInRect:[self bounds] fromRect:NSMakeRect(0.0, 0.0,  isize.width, isize.height) operation: NSCompositeCopy fraction:1.0];

これは正常に機能しますが、テクスチャアトラス全体を表示します。画像の特定の部分にゾーンインするにはどうすればよいですか?画像は1800x1200ピクセル、各画像は180x250ピクセルであるため、画像1はx = 0、y = 0、w = 180、h = 250、2つはx = 180、y = 0、w = 180、h=250になります。 、 等々。

上記のx、y、w、hを変更してみましたが、出力は黒い画像にすぎません。どんな助けでもいただければ幸いです。

編集:これが正しいかどうかはわかりませんが、解決しました:

ファイルを1100x1100に変更しました(これはソリューションには影響しませんが、回答に反映されるため、メモしたいと思います。次に、画像の間違った領域(x、y)をターゲットにして、間違ったサイズをターゲット。新しいコードは次のようになります。

[imageFromBundle drawInRect:[self bounds] fromRect:NSMakeRect(0.0, 950.0, 175.0, 250.0) operation: NSCompositeCopy fraction:1.0];

これを達成するための別の方法がある場合は、それを見てみたいと思います。ありがとう。

4

0 に答える 0