iOS:UIImage详解&图像处理

============图片长宽拉伸但不变形============

--简介:聊天中要实现一个个气泡这种聊天纪录效果,气泡的大小根据文本内容自动调节。刚开始想法是将“气泡”这张背景图片切成多张帖,4个角、4条边线固定到一个container View上,根据文本长宽不一样,改变container View 的frame,然后4个角固定,只是4条边线根据container View在自动缩放。这样步骤很繁琐、每一个的视图坐标要反复修正。

--其实iOS中对图像的处理提供了相关借口,就是UIImage类中stretchableImageWithLeftCapWidth: topCapHeight 方法。

--函数说明:
1.函数作用:创建一个内容可拉伸,而边角不拉伸的图片;
2.参数含义: The leftCapWidth is the margin on the left side of the image that will not be stretched.If we set the leftCapWidth to 10, that means the first 10 pixels will not be stretched. What will be stretched is the next single pixel. Only that pixel and nothing more, and it’s always just one pixel. Finally, everything to the right of that single pixel will not be stretched. 就是说leftCapWidth这个值是不被拉伸的像素,它的下一个像素被拉伸,之后剩下的像素不拉伸,为“rightCapWidth”就是 total width(原图片宽度总像素) – leftCapWidth – 1.总而言之就是根据图片所占屏幕大小,将原图分为三部分,第一部分为leftCapWidth部分,不拉伸;第二部分为“下一像素”拉伸;第三部分为剩下的“rightCapWidth”部分,不拉伸. 参数topCapHeight原理类似.

3.备注:leftCapWidth/topCapHeight这些值不一定就是图片宽度/高度的1/2像素左右,根据实际情况确定。例如上面图片聊天气泡,如果topCapHeight值设置为图片高度的1/2像素,“下一像素”刚好落在尖角斜边上,如何气泡被拉的很长,气泡右边的边下面看起来就是折进去一点。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值