1、首先对自带的UIImage进行分类(Category)
.h文件如下
//
// UIImage+Mo.h
// 图片水印
//
// Created by MoPellet on 15/4/22.
// Copyright (c) 2015年 MoPellt. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface UIImage (Mo)
+(instancetype)waterImageWithBg:(NSString *)bg logo:(NSString *)logo scale:(CGFloat )scale margin :(CGFloat)margin;
@end
2、实现方法 .m文件如下
//
// UIImage+Mo.m
// 图片水印
//
// Created by 万子文 on 15/4/22.
// Copyright (c) 2015年 MoPellt. All rights reserved.
//
#import "UIImage+Mo.h"
@implementation UIImage (Mo)
//打水印在图片的右下角 bg:背景图片 logo:水印图片 scale:水印图片缩放比例 margin:<span style="font-family: Arial, Helvetica, sans-serif;">距离右边和下边的距离</span>
+(instancetype)waterImageWithBg:(NSString *)bg logo:(NSString *)logo scale:(CGFloat)scale margin:(CGFloat)margin{
UIImage *bgImage = [UIImage imageNamed:bg];
// 1.创建一个基于位图的上下文(开启一个基于位图的上下文)
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 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();
return newImage;
}
@end