给图片添加水印

给图片添加水印是一些图像处理或社交软件常用的功能,刚好项目最近用到,便整理出来.
添加水印需要用到一点Quartz2D的知识,大概过程是这样:

  1. 获取位图上下文,设置尺寸为原图的尺寸
  2. 将原图绘制到上下文中
  3. 将水印绘制到上下文中
  4. 生成图片拿去用

对应的代码如下:

/* 开启一个位图上下文,函数需要三个参数
 * size:位图上下文的尺寸(也就是要生成的新图片的尺寸)
 * opaque: 通常要透明的上下文,故设为NO
 * scale:是否需要缩放上下文,取值为0表示不缩放
 */
UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);
    
// 1.绘制原图
 [image drawAtPoint: CGPointZero];
// 2.绘制水印
[watermarkImage drawAtPoint: CGPointZero]    
// 3.生成新图片
UIImage *imageWithWatermark = UIGraphicsGetImageFromCurrentImageContext();
// 4.别忘了将上下文关闭
UIGraphicsEndImageContext();

/* 拿 imageWithWatermark做你想做的事情吧 */

当然文字也是可以做为水印的,过程和上面相同,只是绘制水印的部分改成[attributeString drawAtPoint:...],相信聪明的你会领悟的.

给大家介绍一个很好用的添加水印的第三方框架:UIImage+ATWatermark,它可以方便地给图片添加文字或者图片类型的水印,使用起来就像系统自带的方法那样轻松愉快.(其实是我写的啦哈哈不许笑)

Demo及使用方法请戳https://github.com/CoderAO/ATWatermark
求支持求建议求意见和批评~ 我是爱学习的程序媛~

你可能感兴趣的:(给图片添加水印)