如何将一个CGImage叠加到另一个上

时间:2012-11-06 21:37:09

标签: cocoa cgimage cgimageref

我希望将一个CGImage叠加在另一个上。

作为示例,第一个CGImage是1024x768,并希望在给定位置覆盖第二个100x100 CGImage。

我已经看过如何使用NSImage做到这一点,但我真的不想将我的CGImages转换为NSImage然后做叠加然后将结果转换回CGImage。我也看过iOS版本的代码,但不确定如何在Mac上使用它?

1 个答案:

答案 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?