IOS設置圖片水印代碼

pwmd 10年前發布 | 4K 次閱讀 Objective-C 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 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!