UIView 转 UIImage
这个方法很实用,特别是在做水印相机得时候。。。 - (UIImage*) imageWithUIView:(UIView*) view{ // 创建一个bitmap的context // 并把它设置成为当前正在使用的context UIGraphicsBeginImageContext(view.bounds.size); CGContextRef currnetContext = UIGraphicsGetCurrentContext(); //[view.layer drawInContext:currnetContext]; [view.layer renderInContext:currnetContext]; // 从当前context中创建一个改变大小后的图片 UIImage* image = UIGraphicsGetImageFromCurrentImageContext(); // 使当前的context出堆栈 UIGraphicsEndImageContext(); return image; }
这个方法转换成的UIImage不是高清的,想要得到高清的图片用下面的方法
+ (UIImage*)convertViewToImage:(UIView*)view
{
CGSize size = view.bounds.size;
// 下面方法,第一个参数表示区域大小。第二个参数表示是否是非透明的。如果需要显示半透明效果,需要传NO,否则传YES。第三个参数就是屏幕密度了
UIGraphicsBeginImageContextWithOptions(size, NO, [UIScreen mainScreen].scale);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage*image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}