iOS|iOS 自己水印图片

1、创建一个背景图片UIImage对象

UIImage *bgImage = [UIImage imageNamed:@"bgImage"];

2、创建位图上下文
UIGraphicsBeginImageContextWithOptions(size,opaque,scale);
size:图片大小
opaque:YES 不透明, NO 透明
scale:获取生成图片的大小 图片大小:2020 生成图片大小是:(20scale20scale
3、将背景图片添加到位图上,调用drawInRect:方法
4、创建水印image对象,调用drawInRect:方法,将其添加到位图上下文中
5、从位图上下文中获取合成的新图片,并显示在控制器的imageView上,获取位图上下文中合成的新图片的方法UIGraphicsGetImageFromCurrentImageContext()
6、结束位图编辑,调用UIGraphicsEndImageContext()结束编辑
7、将合成的图片保存
【iOS|iOS 自己水印图片】将图片转换成NSData,再调用NSData的write方法。
其中,UIImage转换成NSData的方法有两个:
UIImagePNGRepresentation()和UIImageJPEGRepresentation()
部分代码:
UIImage *bgImage = [UIImage imageNamed:@"bgImage"]; //获取UIImage对象,显示到imageView上 //创建位图,开启图片 //size 位图大小 //opaque alpha YES 不透明, NO透明 //scale 获取生成图片大小 位图大小:20*20 生成图片大小是:(20*scale*20*scale) UIGraphicsBeginImageContextWithOptions(bgImage.size, NO, 4); [bgImage drawInRect:CGRectMake(0, 0, bgImage.size.width, bgImage.size.width)]; UIImage *waterImage = [UIImage imageNamed:@"header"]; [waterImage drawInRect:CGRectMake(bgImage.size.width - 60, bgImage.size.height - 60, 60, 60)]; //从当前位图获取当前编辑的图片 UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); //结束当前编辑 UIGraphicsEndImageContext(); self.imageView.image = newImage; // 将Image保存成一张png // 将UIImage转成NSData对象,NSData有个write方法可以保存图片 NSData *iamgeData = https://www.it610.com/article/UIImagePNGRepresentation(newImage); [iamgeData writeToFile:@"/Users/apple/Desktop/new.png" atomically:YES]; // 保存jpg //compressionQuality 压缩质量 值的范围(0-1) // 100KB * 0.7 = 70KB NSData *imageData = https://www.it610.com/article/UIImageJPEGRepresentation(newImage, 0.7); [imageData writeToFile:@"/Users/apple/Desktop/new1.jpg" atomically:YES];

    推荐阅读