Простой рисунок NSImage не работает должным образом - PullRequest
0 голосов
/ 09 января 2010

Это ничего не делает:

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 ]

4 голосов
/ 09 января 2010

Давайте назовем [NSImage imageNamed: @ "testImage"] sourceImage.

testImage будет 2x2 пикселей. Так как вы рисуете SourceImage в (1,1), на 1 пиксель вверх и на один пиксель справа от начала координат, 3 из ваших четырех пикселей по-прежнему будут четкими. Верхний правый пиксель будет таким же, как нижний левый пиксель sourceImage. Если это ясно, вы ничего не увидите.

3 голосов
/ 09 января 2010

Я не вижу достаточно кода здесь, чтобы диагностировать проблему. Как вы вызываете код в вашем первом списке? "LevelView" уже находится в окне, или он был загружен из пера в этот момент?

Есть ли в вашем проекте файл изображения с именем "testImage"? Вы уверены, что хотите, чтобы изображение было размером всего в два пикселя?

...