UIImage缩放,解决模糊失真问题
来源:互联网 发布:技术美工 编辑:程序博客网 时间:2024/04/30 00:30
原文链接 http://www.cocoachina.com/bbs/read.php?tid=144770
最近工作中,遇到一个需求,需要把一个UIView对象转成UIImage对象显示。经过网络搜索,找到如下答案:
1
2
3
4
5
6
7
8
-(UIImage*)convertViewToImage:(UIView*)v{
CGSize s = v.bounds.size;
UIGraphicsBeginImageContext(s);
[v.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage*image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return
image;
}
运行后发现,需求基本达到,但是有个问题,转换后的UIImage显示后会变模糊。因此猜测,这个方法适用于iPhone4之前的机型。iPhone4后,由于采用了Retain高清屏,在转换时需要根据屏幕密度做个处理,又到到下面的答案:
1
2
3
4
5
6
7
8
-(UIImage*)convertViewToImage:(UIView*)v{
CGSize s = v.bounds.size;
UIGraphicsBeginImageContextWithOptions(s,
NO
, v.layer.contentsScale);
[v.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage*image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return
image;
}
运行后,问题依旧。于是跟踪了一下contentsScale的值,发现也是1.0。这里我也不太清楚原因,本来是运行在Retain屏的设备上,为什么不是2.0。
只好自己修改成下面的样子:
1
2
3
4
5
6
7
8
9
-(UIImage*)convertViewToImage:(UIView*)v{
CGSize s = v.bounds.size;
// 下面方法,第一个参数表示区域大小。第二个参数表示是否是非透明的。如果需要显示半透明效果,需要传NO,否则传YES。第三个参数就是屏幕密度了
UIGraphicsBeginImageContextWithOptions(s,
NO
, [UIScreen mainScreen].scale);
[v.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage*image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return
image;
}
0 0
- UIImage缩放,解决模糊失真问题
- 如何把UIView转成UIImage,解决模糊失真问题
- 把UIView转成UIImage,解决模糊失真问题
- 如何把UIView转成UIImage,解决模糊失真问题
- 如何把UIView转成UIImage,解决模糊失真问题
- ios UIView 转 UIImage,解决模糊失真问题
- IOS-61-解决UIImage在压缩时失真问题
- UIImage的缩放问题
- 解决UIImage在压缩时失真问题,压缩图片的大小
- 【VS开发】解决位图缩放失真
- 解决win10缩放125%时,字体模糊的问题
- mfc中StretchBlt缩放图像失真问题
- mfc中StretchBlt缩放图像失真问题
- VC 解决图片失真问题
- VC解决stretchblt 失真问题
- SetSTretchBltMode解决图像失真问题
- 解决StretchBlt()图像失真问题
- uiimage 缩放
- 皕杰报表开发(自由式报表)
- OpenGL之路(四)自制图形函数(正方体、圆柱、圆锥)
- 利用 Application_Error 捕获所有异常
- 彩票排三:从0~9随机抽取3个数,组成一组数。
- UVAL 6142 Probability Through Experiments 二分搜索 组合数
- UIImage缩放,解决模糊失真问题
- MySQL基础-数据库基本操作
- ios layoutSubviews 及 layout机制相关方法
- 简明 状态模式(5.8)
- UVAL 6144 Radiation 二分搜索
- solr关于对文档的索引java 并且给文档添加自定义的域
- MAC搭建svn
- 稀疏表示
- Xcode6中自动布局autolayout和sizeclass的使用