最近在做的一个功能是需要将UIview绘制成图片格式,然后在网上找的一个方法
-(UIImage*)convertViewToImage:(UIView*)v{
CGSize s = v.bounds.size;
UIGraphicsBeginImageContext(s);
[v.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage*image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
效果达成了,但是出现了图片模糊的问题,然后又继续找更好的方法,
- (UIImage *)addViewImage:(UIView *)view{
CGSize s = view.bounds.size;
// 下面方法,第一个参数表示区域大小。第二个参数表示是否是非透明的。如果需要显示半透明效果,需要传NO,否则传YES。第三个参数就是屏幕密度了
UIGraphicsBeginImageContextWithOptions(s, NO, [UIScreen mainScreen].scale);
[view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage*viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return viewImage;
}
主要就是第三个参数的问题,就这样解决图片模糊的问题。
网友评论