IOS設置圖片水印代碼
設置圖片水印的本質就是將兩張圖片混合成一個圖片。
可以通過以下步驟來進行設置;
①創建一個基于位圖的上下文(開啟一個基于位圖的上下文)
void UIGraphicsBeginImageContextWithOptions ( CGSize size, BOOL opaque, CGFloat scale )
size表示圖層的大小,一般設置成背景圖的大小
opaque表示是否透明:YES不透明 NO透明
scale表示縮放:0.0表示不縮放
②設置背景圖片
③設置Logo圖片
④從上下文中取得制作完畢的UIImage對象
UIImage * UIGraphicsGetImageFromCurrentImageContext ( void );
⑤關閉圖層上下文
void UIGraphicsEndImageContext ( void );
⑥將圖片格式轉換為NSData
⑦然后保存到相關路徑下面
- (void)testWater { UIImage *bgImage = [UIImage imageNamed:@"scene"]; // 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]; }</pre>
本文由用戶 pwmd 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!