//加载原始图片
UIImage *orginalImage = [UIImage imageNamed:@""];
// 给定一张图片, 截取指定区域范围内的图片
CGFloat X = 0;
CGFloat Y = 0;
CGFloat clipH = orginalImage.size.height * [UIScreen mainScreen].scale;
CGFloat clipW = orginalImage.size.width / 12 * [UIScreen mainScreen].scale;
// CGImageCreateWithImageInRect 使用的坐标都是像素点
// iOS使用的都是点坐标
CGImageRef clipRef = CGImageCreateWithImageInRect(orginalImage.CGImage, CGRectMake(X, Y, clipW, clipH));
[btn setImage:[UIImage imageWithCGImage:clipRef] forState:UIControlStateNormal];
注意:1.CGImageCreateWithImageInRect 使用的坐标都是像素点
2.iOS使用的都是点坐标需要 * [UIScreen mainScreen].scale
给图片添加水印
- (void)viewDidLoad {
[super viewDidLoad];
// 0.加载图片
UIImage *image = [UIImage imageNamed:@"shuiyin.jpg"];
// 1.自己手动开启一个跟图片原始大小的上下文
// opaque不透明
UIGraphicsBeginImageContextWithOptions(image.size, false, 0);
// 2.把图片绘制到上下文
[image drawAtPoint:CGPointZero];
// 3.把文字绘制到上下文
NSString *str = @"图片添加水印";
NSDictionary *attributsDic = @{NSFontAttributeName:[UIFont systemFontOfSize:15],
NSForegroundColorAttributeName:[UIColor cyanColor]
};
CGPoint point = CGPointMake(image.size.width * 0.5, image.size.height * 0.5);
[str drawAtPoint:point withAttributes:attributsDic];
// 4.从上下文当中生成一张图片(把上下文当中所有绘制的内容返回一张图片)
UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext();
// 5.关闭上下文
UIGraphicsEndImageContext();
self.imageView.image = newImage;
}
网友评论