简单的NSImage绘图无法按预期工作

时间:2010-01-09 04:41:55

标签: objective-c cocoa macos nsimage

这没有做任何事情:

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"]];

如果后者产生可见的结果,那么对我来说似乎是前者。我想我在某个地方犯了一个愚蠢的错误?

2 个答案:

答案 0 :(得分:4)

让我们调用[NSImage imageNamed:@“testImage”] sourceImage。

testImage将是2x2像素。由于您在(1,1)处绘制sourceImage,原点为1像素,右侧为1像素,因此四个像素中的3个仍然必须清晰。右上角的像素与sourceImage的左下角像素相同。如果这很清楚,你就不会看到任何东西。

答案 1 :(得分:3)

我在这里没有看到足够的代码来诊断问题。你是如何在第一个列表中调用代码的? “levelView”是否已经在窗口中,或者是否已在该点从笔尖加载?

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