给图片添加水印是一些图像处理或社交软件常用的功能,刚好项目最近用到,便整理出来.
添加水印需要用到一点Quartz2D的知识,大概过程是这样:
- 获取位图上下文,设置尺寸为原图的尺寸
- 将原图绘制到上下文中
- 将水印绘制到上下文中
- 生成图片拿去用
对应的代码如下:
/* 开启一个位图上下文,函数需要三个参数
* 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
求支持求建议求意见和批评~ 我是爱学习的程序媛~
网友评论