iOS 图片添加水印

2023-12-18  本文已影响0人  東玖零

背景:有这样一个需求,拍的照片需要添加水印。

知道需要使用图片绘制相关的功能,经过1小时搞定,直接上代码啦。

extension UIImage {
    
    func add(text:String) -> UIImage {
        
        var im:UIImage?
        
        autoreleasepool {
            let scale = UIScreen.main.scale
            
            let size = CGSize(width: self.size.width, height: self.size.height + 60*scale)
            
            UIGraphicsBeginImageContextWithOptions(size, false, scale)
            
            self.draw(in: CGRect(x: 0, y: 0, width: self.size.width, height: self.size.height)) // 绘制图片

            let context = UIGraphicsGetCurrentContext() // 创建图片上下文
            
            context?.setFillColor(UIColor.red.cgColor) // 设置当前填充颜色的图形上下文
            
            context?.fill(CGRect(x: 0, y: self.size.height, width: self.size.width, height: 60*scale))//填充颜色
            
            let textRect = CGRect(x: 20*scale, y: self.size.height + 10*scale, width: self.size.width - 40*scale, height: 40*scale)
            
            (text as NSString).draw(in: textRect, withAttributes: [.font : UIFont.systemFont(ofSize: 14*scale),.foregroundColor:UIColor.white]) // 绘制文字
            
            im = UIGraphicsGetImageFromCurrentImageContext()
            
            UIGraphicsEndImageContext()
        }
        
        if let image = im {
            print("图片生成成功!!")
            return image
        } else {
            print("图片生成失败!!")
        }
        
        return self
    }
    
}

直接 image.add(text:"2023-12-19 12:20:30 \n 我的水印")

上一篇下一篇

猜你喜欢

热点阅读