iOS给图片打水印,并将打过水印的图片生成到沙盒中
?
- (void)WaterImage
{
??? UIImage *bgImage = [UIImage imageNamed:@"scene"];
?? ?
??? // 上下文 : 基于位圖(bitmap) ,? 所有的東西需要繪制到一張新的圖片上去
?? ?
??? // 1.創建一個基于位圖的上下文(開啟一個基于位圖的上下文)
??? // size : 新圖片的尺寸
??? // opaque : YES : 不透明,? NO : 透明
??? // 這行代碼過后.就相當于常見一張新的bitmap,也就是新的UIImage對象
??? UIGraphicsBeginImageContextWithOptions(bgImage.size, NO, 0.0);
?? ?
??? // 2.畫背景
??? [bgImage drawInRect:CGRectMake(0, 0, bgImage.size.width, bgImage.size.height)];
?? ?
??? // 3.畫右下角的水印
??? UIImage *waterImage = [UIImage imageNamed:@"logo"];
??? CGFloat scale = 0.2;
??? CGFloat margin = 5;
??? CGFloat waterW = waterImage.size.width * scale;
??? CGFloat waterH = waterImage.size.height * scale;
??? CGFloat waterX = bgImage.size.width - waterW - margin;
??? CGFloat waterY = bgImage.size.height - waterH - margin;
??? [waterImage drawInRect:CGRectMake(waterX, waterY, waterW, waterH)];
?? ?
??? // 4.從上下文中取得制作完畢的UIImage對象
??? UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
?? ?
??? // 5.結束上下文
??? UIGraphicsEndImageContext();
?? ?
??? // 6.顯示到UIImageView
??? self.iconView.image = newImage;
?? ?
??? // 7.將image對象壓縮為PNG格式的二進制數據
??? NSData *data = UIImagePNGRepresentation(newImage);
??? //??? UIImageJPEGRepresentation(<#UIImage *image#>, <#CGFloat compressionQuality#>)
?? ?
??? // 8.寫入文件
??? NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject] stringByAppendingPathComponent:@"new.png"];
??? [data writeToFile:path atomically:YES];
}
轉載于:https://www.cnblogs.com/xiaokanfengyu/p/3931774.html
總結
以上是生活随笔為你收集整理的iOS给图片打水印,并将打过水印的图片生成到沙盒中的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CUDA编程之矩阵乘法
- 下一篇: tcp服务器测试网页版,tcp测试服务器