我希望将一个CGImage叠加在另一个上。
作为示例,第一个CGImage是1024x768,并希望在给定位置覆盖第二个100x100 CGImage。
我已经看过如何使用NSImage做到这一点,但我真的不想将我的CGImages转换为NSImage然后做叠加然后将结果转换回CGImage。我也看过iOS版本的代码,但不确定如何在Mac上使用它?
答案 0 :(得分:1)
我主要习惯iOS,所以我可能在这里不太深入,但假设你有一个图形上下文(大小像两个图像中较大的一个),你不能只画两个CGImages在顶部彼此?
CGImageRef img1024x768;
CGImageRef img100x100;
CGSize imgSize = CGSizeMake(CGImageGetWidth(img1024x768), CGImageGetHeight(img1024x768));
CGRect largeBounds = CGRectMake(0, 0, CGImageGetWidth(img1024x768), CGImageGetHeight(img1024x768));
CGContextDrawImage(ctx, largeBounds, img1024x768);
CGRect smallBounds = CGRectMake(0, 0, CGImageGetWidth(img100x100), CGImageGetHeight(img100x100));
CGContextDrawImage(ctx, smallBounds, img100x100);
然后将结果绘制成NSImage?