0

これは何もしません:

NSImage* testImage = [[NSImage alloc] initWithSize:NSMakeSize(2.0,2.0)];

[testImage lockFocus];
[[NSImage imageNamed:@"testImage"] drawAtPoint:NSMakePoint(1.0,1.0) fromRect:NSZeroRect operation:NSCompositeCopy fraction:1.0];
[testImage unlockFocus];

[levelView setImage:testImage];

...しかし、これは:

[levelView setImage:[NSImage imageNamed:@"testImage"]];

後者が目に見える結果を生むなら、前者もそうであるように思えます。私はどこかで愚かな間違いを犯していると思いますか?

4

2 に答える 2

4

[NSImage imageNamed:@"testImage"] sourceImage を呼び出しましょう。

testImage は 2x2 ピクセルになります。(1,1) で sourceImage を描画しているので、原点から 1 ピクセル上、1 ピクセル右にあるため、4 ピクセルのうち 3 ピクセルは必ずクリアになります。右上のピクセルは、sourceImage の左下のピクセルと同じになります。それがはっきりしていれば、何も見えません。

于 2010-01-09T05:31:10.473 に答える
3

問題を診断するのに十分なコードがここにはありません。最初のリスティングでコードをどのように呼び出していますか? 「levelView」はすでにウィンドウ内にありますか、それともその時点でペン先からロードされていますか?

プロジェクトに「testImage」という名前の画像ファイルはありますか? この画像を 2 ピクセルの正方形だけにしてよろしいですか?

于 2010-01-09T05:13:39.940 に答える