//********************************************************************************* 位图上下文 水印照片 -
生成一张有水印的照片,一定要获取UIImage 对象, 然后显示中imageview 上
//创建一背景图片
UIImage *bgImage =[UIImage imageNamed:@"scene"];
//创建一个位图(图片),开启位图上下文
//size 位图大小 opaque:alpha通道:YES 不透明 NO 不透明 使用NO,生成的更清晰
//scale 比例 设置0.0 为屏幕的比例
//scale 是用于获取生成图片大小,比如位图大小 20×20 /生成一张图片 (20*scale × 20*scale)
NSLog(@"当前屏幕的比例%f ",[UIScreen mainScreen].scale);
UIGraphiceBeginImageContextWithOptions(bgImage.size,NO,0.0);
//2画背景图片
[bgImage drawInRect :CGRectMake(0,0,bgImage.size.width,bgImage.size.height)];
//3 画水印,
//算水印的位置和大小
CGFloat waterW = 80;
CGFloat waterH = 60;
CGFloat waterX = bgImage.size.width -waterW;
CGFloat waterY = bgImage.size.height -waterH;
UIImage *waterImage =[UIImage imageName:@"logo"];
[waterImage drawInRect:CGRectMake(waterX,waterY,waterW,waterH)];
//4 从位图上下文获取 当前编辑的图片
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
//5 结束当前位置编辑
UIGraphicsEndImageContext();
//6 显示在UImageView 上
self.imageView.image = newImage;
#pragma mark 剪裁图片
//需求:从位图上下文,裁剪图片[裁剪成圆形,也添加圆形的边框],生成一张图片
// 获取要裁剪的图片
UIImage *img = [UIImage imageNamed:@"papa"];
CGRect imgRect = CGRectMake(0, 0, img.size.width, img.size.height);
// 1.开启位图上下文
UIGraphicsBeginImageContextWithOptions(img.size, NO, 0.0);
#warning 在自定义的view的drawRect方法里,调用UIGraphicsGetCurrentContext获取的上下文,是图层上下文(Layer Graphics Context)
// 1.1 获取位图上下文
CGContextRef bitmapContext = UIGraphicsGetCurrentContext();
// 2.往位图上下裁剪图片
**** // 2.1 指定一个圆形的路径,把圆形之外的剪切掉
CGContextAddEllipseInRect(bitmapContext, imgRect);
CGContextClip(bitmapContext);
// 2.2 添加图片
[img drawInRect:imgRect];
// 2.3 添加边框
// 设置边框的宽度
CGContextSetLineWidth(bitmapContext, 3);
// 设置边框的颜色
[[UIColor blueColor] set];
CGContextAddEllipseInRect(bitmapContext, imgRect);
CGContextStrokePath(bitmapContext);
// 3.获取当前位图上下文的图片
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
// 4.结束位图编辑
UIGraphicsEndImageContext();
// 把图片显示在控制器的view
self.imageView.image = newImage;
// 保存图片 先把图片转成NSData,然后调用其的write
NSData *imgData = UIImagePNGRepresentation(newImage);
[imgData writeToFile:@"/Users/apple/Desktop/new.png" atomically:YES];
IOS学习之——位图上下文 -- 水印图片
最新推荐文章于 2021-12-03 22:29:53 发布