合并两个图像&最终图像上的文字

时间:2016-12-23 11:32:34

标签: swift uiimage swift3 core-graphics

我想在Swift中做的是将两个图像合并在一起,我合并在一起的图像是我用触摸手势将一个图像拖到另一个图像的顶部。我将图像合成,但是我在主图像上拖动的图像并没有保持它的位置。如何让它留在我为复合材料放置的位置?

这是我的代码:

extension CIHHatSelectionViewController{
// Return composite image of image2 overlayed on image1
//
func compositeImage(_ image1: UIImage, image2: UIImage, drawText: String, imageView1: CGPoint, imageView2:CGRect) -> UIImage {
    let catPos = (image1.size.height - imageView2.origin.y) - imageView2.height
    let bounds1 = CGRect(x: 0, y: 0, width: image1.size.width, height: image1.size.height)
    let bounds2 = CGRect(x:imageView2.origin.x, y:catPos, width:imageView2.size.width, height:imageView2.size.height)
    _ = CGColorSpaceCreateDeviceRGB()
    let bitmapInfo = CGBitmapInfo(rawValue: CGImageAlphaInfo.premultipliedFirst.rawValue)
    let ctx = CGContext(data: nil,
                        width: image1.cgImage!.width,
                        height: image1.cgImage!.height,
                        bitsPerComponent: image1.cgImage!.bitsPerComponent,
                        bytesPerRow: image1.cgImage!.bytesPerRow,
                        space: image1.cgImage!.colorSpace!,
                        bitmapInfo: bitmapInfo.rawValue)!
    ctx.draw(image1.cgImage!, in: bounds1, byTiling: false)
    ctx.setBlendMode(.normal) // one image over the other
    ctx.draw(image2.cgImage!, in: bounds2, byTiling: false)

    let finalImage = textToImage(drawText, inImage: UIImage(cgImage: ctx.makeImage()!), atPoint: imageView1)
    return finalImage
}

0 个答案:

没有答案