加载中…
个人资料
sanfengflying
sanfengflying
  • 博客等级:
  • 博客积分:0
  • 博客访问:447,720
  • 关注人气:90
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

iOS图片无@2x进行拉伸失真的解决方法

(2013-08-28 20:24:54)
标签:

uiimage

scale

size

分类: IOS学习
在iOS中用retain分辨率(即1个点有四个像素)的图片做拉伸或者平铺是,如果后缀没有带@2x,则会出现处理后的图片失真的情况。
于是通过如下处理,可以有效解决:

 

CGSize size;

size = CGSizeMake(sourceImage.size.width / 2.0f, sourceImage.size.height / 2.0f);

UIGraphicsBeginImageContextWithOptions(size, NO, 0);

if (1.0 == [[UIScreen mainScreen] scale])

    [sourceImage drawInRect:CGRectIntegral((CGRect){0.0f, 0.0f, size})];

else

    [sourceImage drawInRect:(CGRect){0.0f, 0.0f, size}];

sourceImage = UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();


上述操作主要是生成的UIImage.scale 变为2, size缩小一半。达到读取@2x图片的效果。


具体原理可以参考:http://www.douban.com/note/77384858/

http://blog.csdn.net/q199109106q/article/details/8615661


然后就可以通过:

 

 

stretchableImageWithLeftCapWidthtopCapHeight

 

resizableImageWithCapInsets

 

resizableImageWithCapInsets

进行处理了。


如果图片有@2x的话,就不用处理了。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有