1. 程式人生 > >ios 為圖片加上水印詳解

ios 為圖片加上水印詳解

在客戶端為圖片加上水印會浪費效能,如果圖片多的話儘量把圖片放在伺服器端生成吧

+(instancetype)watermarkWithImage:(NSString *)imageName logo:(NSString *)logoName {
    
    UIImage *image = [UIImage imageNamed:imageName];
    
    //建立一個基於點陣圖的上下文
    UIGraphicsBeginImageContextWithOptions(image.size, NO, 0.0);
    
    //將原始圖片畫出來
    [image drawInRect:CGRectMake(0, 0, image.size.width, image.size.height)];
    
    //水印圖示
    UIImage *logo = [UIImage imageNamed:logoName];
    
    //水印的大小和位置
    CGFloat scale = 0.2;
    CGFloat margin = 5;
    CGFloat logoW = logo.size.width * scale;
    CGFloat logoH = logo.size.height * scale;
    CGFloat logoX = image.size.width - logoW - margin;
    CGFloat logoY = image.size.height - logoH - margin;
    
    //將水印畫出來
    [logo drawInRect:CGRectMake(logoX, logoY, logoW, logoH)];
    
    //從上下文中取出畫好的圖片
    UIImage *resultImage = UIGraphicsGetImageFromCurrentImageContext();
    
    //關閉點陣圖上下文
    UIGraphicsEndImageContext();
    
    return resultImage;
}