如何在Swift中制作由两个图像组成的合成图像?

cle*_*ght 1 uiimage ios swift

我想创建一个新的UIImage,它是一个叠加在另一个上面的UIImage的复合体.我怎样才能做到这一点?

cle*_*ght 5

//
// Return composite image of image2 overlayed on image1
//
func compositeImage(image1: UIImage, image2: UIImage) -> UIImage {
    var bounds1 = CGRectMake(0, 0, image1.size.width, image1.size.height)
    var bounds2 = CGRectMake(0, 0, image2.size.width, image2.size.height)
    var colorSpace = CGColorSpaceCreateDeviceRGB()
    let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.PremultipliedFirst.rawValue)
    var ctx = CGBitmapContextCreate(nil,
        CGImageGetWidth(image1.CGImage),
        CGImageGetHeight(image1.CGImage),
        CGImageGetBitsPerComponent(image1.CGImage),
        CGImageGetBytesPerRow(image1.CGImage),
        CGImageGetColorSpace(image1.CGImage),
        bitmapInfo)!
    CGContextDrawImage(ctx, bounds1, image1.CGImage)
    CGContextSetBlendMode(ctx, kCGBlendModeNormal) // one image over the other
    CGContextDrawImage(ctx, bounds2, image2.CGImage)
    return UIImage(CGImage: CGBitmapContextCreateImage(ctx))!
}
Run Code Online (Sandbox Code Playgroud)