gpt4 book ai didi

swift - 如何使用此代码为图像添加水印?

转载 作者:搜寻专家 更新时间:2023-10-31 21:50:41 24 4
gpt4 key购买 nike

我知道还有其他几种方法可以做到这一点;我不想导入任何我不需要的东西。如果有人可以帮助我处理他的代码,那就太好了。

目前只保存原图,不带水印。

extension UIImage {

class func imageWithWatermark(image1: UIImageView, image2: UIImageView) -> UIImage {
UIGraphicsBeginImageContextWithOptions(image1.bounds.size, false, 0.0)
image2.layer.renderInContext(UIGraphicsGetCurrentContext()!)
image1.layer.renderInContext(UIGraphicsGetCurrentContext()!)
let img = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return img
}
}

func addWatermark() {
let newImage = UIImage.imageWithWatermark(imageView, image2: watermarkImageView)
UIImageWriteToSavedPhotosAlbum(newImage, nil, nil, nil)
}

编辑:我在保存的图像上出现了水印。

我不得不切换图层的顺序:

 image1.layer.renderInContext(UIGraphicsGetCurrentContext()!)
image2.layer.renderInContext(UIGraphicsGetCurrentContext()!)

但是,它没有出现在正确的位置。它似乎总是出现在图像的中心。

最佳答案

如果您抓取 UIImageViews 的图像,您可以使用以下概念:

if let img = UIImage(named: "image.png"), img2 = UIImage(named: "watermark.png") {

let rect = CGRect(x: 0, y: 0, width: img.size.width, height: img.size.height)

UIGraphicsBeginImageContextWithOptions(img.size, true, 0)
let context = UIGraphicsGetCurrentContext()

CGContextSetFillColorWithColor(context, UIColor.whiteColor().CGColor)
CGContextFillRect(context, rect)

img.drawInRect(rect, blendMode: .Normal, alpha: 1)
img2.drawInRect(CGRectMake(x,y,width,height), blendMode: .Normal, alpha: 1)

let result = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

UIImageWriteToSavedPhotosAlbum(result, nil, nil, nil)

}

关于swift - 如何使用此代码为图像添加水印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35091137/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com