一、水印
+ 在图片上加的防止他人盗图的半透明logo、文字、图标
二、如何实现在图片上加水印
-
- 开启位图上下文
UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);
- 2.绘制图片与文字
- 3.利用一个函数,从上下文中获取一张图片
```objc
// 从上下文内容中生成一张图片
image = UIGraphicsGetImageFromCurrentImageContext();
- 4.关闭位图上下文,有开启就要有关闭
// 结束上下文 UIGraphicsEndImageContext();
- 5.注意:可以将图片转为二进制NSData,然后将其写到本地桌面
```objc
NSData *data = UIImageJPEGRepresentation(image, 0.00001);
[data writeToFile:@"/Users/cjp/Desktop/image.jpg" atomically:YES];
三、具体代码实现
#import "ViewController.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
// 给一张图片添加文字或者Logo,生成一张新的带有文字或者Logo图片
// 绘制图片到位图上下文,然后再利用位图上下文生成一张新的图片
// 加载图片
UIImage *image = [UIImage imageNamed:@"小黄人"];
// 1.开启位图上下文
// size:上下文的尺寸
// opaque:不透明,总结:在上下文中一般都是设置不透明度,控件才是设置透明度
// scale: 0表示不缩放
UIGraphicsBeginImageContextWithOptions(image.size, NO, 0);
// 绘制图片
[image drawAtPoint:CGPointZero];
// 绘制文字
NSString *str = @"小黄人";
[str drawAtPoint:CGPointZerowithAttributes:@{NSForegroundColorAttributeName : [UIColor redColor]}];
// 从上下文内容中生成一张图片
image = UIGraphicsGetImageFromCurrentImageContext();
// 结束上下文
UIGraphicsEndImageContext();
// 把图片写入到桌面
// image -> NSData
// 把图片生成一个png格式的二进制数据
// png已经高清图片格式
// NSData *data = UIImagePNGRepresentation(image);
// compressionQuality:图片质量
NSData *data = UIImageJPEGRepresentation(image, 0.00001);
[data writeToFile:@"/Users/cjp/Desktop/image.jpg" atomically:YES];
}
@end