gpt4 book ai didi

objective-c - 使用 Cocoa/OSX 合并/堆叠两个图像

转载 作者:太空狗 更新时间:2023-10-30 03:23:47 25 4
gpt4 key购买 nike

我有一个 CGImageRef(我们称之为原始图像)和一个透明的 png(水印)。我正在尝试编写一种方法,将水印放在原件的顶部,并返回一个 CGImageRef。

在 iOS 中,我会使用 UIKit 将它们都绘制到上下文中,但这在 OSX 中似乎不可能(不支持 UIKit)。

堆叠两个图像的最简单方法是什么?谢谢

最佳答案

对于一个快速的'n dirty 解决方案,您可以使用 NSImage 绘图 API:

NSImage *background = [NSImage imageNamed:@"background"];
NSImage *overlay = [NSImage imageNamed:@"overlay"];

NSImage *newImage = [[NSImage alloc] initWithSize:[background size]];
[newImage lockFocus];

CGRect newImageRect = CGRectZero;
newImageRect.size = [newImage size];

[background drawInRect:newImageRect];
[overlay drawInRect:newImageRect];

[newImage unlockFocus];

CGImageRef newImageRef = [newImage CGImageForProposedRect:NULL context:nil hints:nil];

如果您不喜欢这样,您期望的大多数 CGContext API 都可以跨平台使用——用于通过更多控制进行绘制。同样,您可以查看 NSGraphicsContext。

关于objective-c - 使用 Cocoa/OSX 合并/堆叠两个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18583465/

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