- (UIImage *)showWaterMaskInImage:(UIImage *)img WithText:(NSString *)text withlogoImage:(NSString *)waterMarkImg {
float heightScale = SCREEN_HEIGHT/img.size.height/1.0;//圖片的高度和屏幕高度的比例
float widthScale = SCREEN_WIDTH/img.size.width/1.0;//圖片的寬和屏幕寬的比例
float scale = MIN(heightScale, widthScale);//選取比較小的比例
float h = img.size.height*scale;//圖片的高度乘以比例係數 == 水印圖片的高度
float w = img.size.width*scale;//圖片的寬度乘以比例係數 == 水印圖片的寬
float fitScale = img.size.width/w;
CGSize newFitSize = CGSizeMake(w*fitScale, h*fitScale);
//生成要獲取image的區域
UIGraphicsBeginImageContext(newFitSize);
// 獲取當前圖形上下文
CGContextRef context = UIGraphicsGetCurrentContext();
// 向下移動該圖形上下文的座標原點
CGContextTranslateCTM(context, 0, newFitSize.height);
// 向上翻轉圖形上下文
CGContextScaleCTM(context, 1.0, -1.0);
// 建立顯示區域
CGRect imageframe = CGRectMake(0, 0, newFitSize.width, newFitSize.height);
// 繪製圖片
CGContextDrawImage(context, imageframe, img.CGImage);
[[UIColor darkGrayColor] set];//上下文種的文字屬性
CGContextTranslateCTM(context, 0, newFitSize.height);
CGContextScaleCTM(context, 1.0, -1.0);
UIFont *font = [UIFont boldSystemFontOfSize:12*fitScale];
//此處設置文字顯示的位置
[text drawInRect:CGRectMake(newFitSize.width - 95*fitScale, newFitSize.height - 22*fitScale, 90*fitScale, 12*fitScale) withFont:font];
// [[UIImage imageNamed:waterMarkImg] drawInRect:CGRectMake(newFitSize.width - 115*fitScale, newFitSize.height - 22*fitScale, 15*fitScale, 15*fitScale)];
// 從當前上下文種獲取圖片
UIImage *image =UIGraphicsGetImageFromCurrentImageContext();
//移除棧頂的基於當前位圖的圖形上下文。
UIGraphicsEndImageContext();
return image;
}圖片
不用尺寸的圖片上顯示的水印是同樣的尺寸it