//生成一张新的图片(截屏)
▶️//生成一张跟原始imageView一样大小的图片
//UIGraphicsBeginImageContext(self.imageV.bounds.size);
UIGraphicsBeginImageContextWithOptions(self.imageV.bounds.size, NO, 0.0);
▶️//设置一个矩形的裁剪区域
UIRectClip(self.coverView.frame);
//UIBezierPath *path = [UIBezierPath bezierPathWithRect:(CGRect)]
▶️//把ImageView的内容画到上下文当中.
CGContextRef ctx = UIGraphicsGetCurrentContext();
[self.imageV.layer renderInContext:ctx];
▶️//从上下文当中生成一张图片
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
▶️//关闭上下文
UIGraphicsEndImageContext();
//把原来imageView当中的那张图片给替换掉了
self.imageV.image = newImage;
//手指松开时移除遮盖
[self.coverView removeFromSuperview];
ps: self.imageV -- 原图
self.coverView -- 截屏区域
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
图片保存到系统相册调用方法:
//参数说明:
//第一个参数:要写入到相册的图片.
//第二个参数:哪个对象坚听写入完成时的状态.
//第三个参数:图片保存完成时调用的方法
//注意:图片保存完成时调用的方法必须得是image:didFinishSavingWithError: contextInfo:
UIImageWriteToSavedPhotosAlbum(newImage,self,@selector(image:didFinishSavingWithError: contextInfo:),nil);
//当照片写入到系统相册结束时调用
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {
}