iOS 图片添加水印

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

知道需要使用图片绘制相关的功能,经过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 我的水印")

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS添加水印的方法有很多,常用的做法就是直接将水印绘制到图片上。这种方式的缺陷是:如果绘制水印的地方不是纯色,就...
    那个人一定不是我阅读 8,865评论 0 1
  • 最近在做一个上传身份证和营业执照的功能模块,为了上传的图片不被非法份子盗用,需要做一个图片添加水印的功能,来保证图...
    本客阅读 1,254评论 0 0
  • 做需求的时候,发现有需要给图片水印添加背景颜色的,搜了好久,没有找到需要的例子,试了下通过view去调用drawI...
    王看山阅读 1,265评论 0 1
  • 此文章为转载, 原文地址: https://www.jianshu.com/p/280dbe07d3fd 加水印的...
    adalillian阅读 469评论 0 0
  • //1.加载要添加水印的图片UIImage * image = [UIImage imageNamed:@"img...
    千里从阅读 168评论 0 0