iphone - 如何在 CGContext 上分层

标签 iphone ios xcode core-graphics

我使用了一些解决方法来成功保存带有蒙版的图像(因为您无法使用 CoreAction 渲染蒙版)。

这是我的代码:

CGContextRef context = CGBitmapContextCreate(nil, cWidth, cHeight, bitsPerComponent, bytesPerRow, CGColorSpaceCreateDeviceRGB(), CGImageGetBitmapInfo(image));
//the mask:
CGContextClipToMask(context, CGRectMake(0,0,1280,935), self.image.image.CGImage);
//the image to mask:
CGContextDrawImage(context, CGRectMake(0, 0, 1280,935), viewImage.CGImage);

CGImageRef mergeResult  = CGBitmapContextCreateImage(context);
    saver = [[UIImage alloc] initWithCGImage:mergeResult];

所以这效果很好, mask 会剪掉目标图像中其形状之外的所有内容。这使得周围区域和背景变白。我不想显示白色,而是想显示图像/颜色/图案等。所以我基本上想在所有这些后面堆叠另一个图像。

如何做到这一点?谢谢

最佳答案

首先将背景绘制到上下文中,然后进行剪辑,然后将图像绘制到相同的上下文中。

关于iphone - 如何在 CGContext 上分层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9623156/

相关文章:

ios - 在 iOS 应用程序中拥有动画背景

ios - -all_load 和 -ObjC 导致其他库出现问题

ios - 检索 iOS 项目中的分支名称

ios - JSONModel 中的 NSMutableDictionary - EXC_BAD_ACCESS KERN_INVALID_ADDRESS

swift - Spritekit 水平 ScrollView

iphone - UITextField:退格键不起作用

java - 将 iPhone 应用程序转换为 Android 应用程序——我需要了解 Objective C 吗?

c++ - Xcode header 困惑

iphone - Objective-C 连接 NSString

ios - 错误:执行 gem ... (Errno::EPERM) 操作不允许 -/usr/bin/pod in Xcode 8 swift 3