0

我希望将一个 CGImage 覆盖在另一个之上。

例如,第一个 CGImage 是 1024x768 并且想要在给定位置覆盖第二个 100x100 CGImage。

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

4

1 回答 1

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 中?

于 2012-11-07T00:01:25.850 回答