Как составить несколько NSImages в одно большое изображение?

У меня есть набор объектов, которые описывают название картинки, его размер, и это - местоположение X/Y. Набор отсортирован по "слоям", таким образом, я могу составить изображения в алгоритме своего рода живописца.

От этого я могу определить прямоугольник, необходимый для содержания всех изображений, поэтому теперь, что я хочу сделать:

  • Создайте своего рода буфер для содержания результата (NS, эквивалентный из того, что iPhoneOS называет UIGraphicsContext.)
  • Вовлеките все изображения в буфер.
  • Поймайте новый NSImage из составленного результата буфера.

В iPhoneOS это - код, который делает то, что я хочу:

UIGraphicsBeginImageContext (woSize);
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    [[UIColor clearColor] set];
    CGContextFillRect(ctx, NSMakeRect(0, 0, woSize.width, woSize.height));
    // draw my various images, here.
    // i.e. Various repetitions of [myImage drawAtPoint:somePoint];
    UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

То, что я ищу, - то, как сделать это в Настольном Какао/NS.

Спасибо!

15
задан Olie 4 March 2010 в 00:33
поделиться

1 ответ

NSImage* resultImage = [[[NSImage alloc] initWithSize:imageSize] autorelease];
[resultImage lockFocus];

[anotherImage drawAtPoint:aPoint fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];
// Or any of the other about 6 options; see Apple's guide to pick.

[resultImage unlockFocus];

Обратитесь к Руководству по рисованию Apple , чтобы получить гораздо более длинный и подробный ответ.

19
ответ дан 1 December 2019 в 03:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: