給圖片添加水印是一些圖像處理或社交軟件常用的功能,剛好項(xiàng)目最近用到,便整理出來.
添加水印需要用到一點(diǎn)Quartz2D的知識(shí),大概過程是這樣:
- 獲取位圖上下文,設(shè)置尺寸為原圖的尺寸
- 將原圖繪制到上下文中
- 將水印繪制到上下文中
- 生成圖片拿去用
對(duì)應(yīng)的代碼如下:
/* 開啟一個(gè)位圖上下文,函數(shù)需要三個(gè)參數(shù)
* size:位圖上下文的尺寸(也就是要生成的新圖片的尺寸)
* opaque: 通常要透明的上下文,故設(shè)為NO
* scale:是否需要縮放上下文壤圃,取值為0表示不縮放
*/
UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);
// 1.繪制原圖
[image drawAtPoint: CGPointZero];
// 2.繪制水印
[watermarkImage drawAtPoint: CGPointZero]
// 3.生成新圖片
UIImage *imageWithWatermark = UIGraphicsGetImageFromCurrentImageContext();
// 4.別忘了將上下文關(guān)閉
UIGraphicsEndImageContext();
/* 拿 imageWithWatermark做你想做的事情吧 */
當(dāng)然文字也是可以做為水印的,過程和上面相同,只是繪制水印的部分改成[attributeString drawAtPoint:...]
,相信聰明的你會(huì)領(lǐng)悟的.
給大家介紹一個(gè)很好用的添加水印的第三方框架:UIImage+ATWatermark,它可以方便地給圖片添加文字
或者圖片
類型的水印,使用起來就像系統(tǒng)自帶的方法那樣輕松愉快.(其實(shí)是我寫的啦哈哈不許笑)
Demo及使用方法請(qǐng)戳https://github.com/CoderAO/ATWatermark
求支持求建議求意見和批評(píng)~ 我是愛學(xué)習(xí)的程序媛~