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 个像素,因此您的四个像素中的 3 个必须仍然清晰。右上角的像素将与 sourceImage 的左下角像素相同。如果这很清楚,您将什么也看不到。

于 2010-01-09T05:31:10.473 回答
3

我在这里没有看到足够的代码来诊断问题。您如何在第一个清单中调用代码?“levelView”是否已经在一个窗口中,或者它是否已经从一个 nib 加载?

您的项目中是否有名为“testImage”的图像文件?你确定你希望这张图片只有两个像素的正方形吗?

于 2010-01-09T05:13:39.940 回答