gpt4 book ai didi

cocoa - 如何将多个 NSImage 合成为一张大图像?

转载 作者:行者123 更新时间:2023-12-03 16:02:44 24 4
gpt4 key购买 nike

我有一个对象集合,这些对象描述了图像名称、其大小及其 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();

我正在寻找的是如何在 Desktop Cocoa/NS 中做到这一点。

谢谢!

最佳答案

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's Drawing Guide以获得更长、更详细的答案。

关于cocoa - 如何将多个 NSImage 合成为一张大图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2376097/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com