iOS 图片拉伸处理
来源:互联网 发布:老男孩linux百度网盘 编辑:程序博客网 时间:2024/05/29 09:14
图片的Resize处理
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets
可以使用此方法生成一个新的图片,其参数 capInsets 是个结构体,可用 UIEdgeInsetsMake(CGFloat top, CGFloat left, CGFloat bottom, CGFloat right)
定义,由 top,left,bottom,right 参数定义的区域在拉伸时会保持不变,其中 top、left、bottom、right 的单位都是 point ,以实例说明该方法的使用吧。
实例1,从下图左边的原图,水平拉伸想得到右边的图片:
保持图片左边(包括下三角处)在图片的水平拉伸处理中保持原样不变,通过代码设置如下:
UIImage *img = [UIImage imageNamed:@"popup"];img = [img resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 55) resizingMode:UIImageResizingModeStretch];self.resizableImgView.image = img;
其中 CapInsets 的 left 值为 13 point,right 值为 55 point,这个值的确定需要根据具体图片其保持不变的区域来确定,目前,也可以通过 Xcode xcassets 的 Slicing 功能完成,如下图所示:
resizableImageWithCapInsets
设置时,需要联合红色框 Scale 处的值转换为单位为 point 的值,红色框 Center 处的值控制图片变换的方式,这里 Stretches 表示将 width 为 4 pixels 的图片区域进行拉伸,还有另一种方式 Tiles,表示将设置的区域进行平铺,这种方式稍后以实例2来说明。红色框 Slices 和 Center 处的数值可以直接改变输入框中的数值改变,也可以拖动左侧图片中的竖直虚线设置,可以自己试试。实例2,从下图左边的原图,将图片指定区域平铺想得到右边的图片:
图片 Tiles
将图片中五角星的图样进行平铺,通过代码设置如下:
UIImage *img = [UIImage imageNamed:@"about"];img = [img resizableImageWithCapInsets:UIEdgeInsetsMake(0, 11.5, 0, 11) resizingMode:UIImageResizingModeTile];self.resizableImgView.image = img;
请注意,这里 resizingMode
的值设置成 UIImageResizingModeTile
,表示图片的处理方式。由于这里只是水平平铺,所以其 top 和 bottom 都是 0,left 和 right 的值都是根据需要平铺的区域来设定。同样,这也可以通过 Xcode xcassets 的 Slices 来完成。如下图所示:
Xcode 中使用 Slicing 功能平铺处理图片
从上述可以看出,善于 Xcode 可以减少代码量,以更快完成开发任务。
- iOS 图片拉伸处理
- ios 处理图片拉伸
- iOS 图片拉伸处理
- iOS 图片拉伸处理
- IOS 图片拉伸处理方法
- iOS中图片的拉伸处理技巧
- iOS--OC--图片拉伸和尺寸变换,图片简单处理
- UIImage处理图片拉伸
- 图片拉伸处理
- IOS图片拉伸
- iOS图片拉伸
- iOS图片拉伸技巧
- ios图片拉伸
- iOS 图片拉伸
- iOS图片拉伸技巧
- iOS图片拉伸技巧
- IOS图片拉伸技巧
- iOS图片拉伸技巧
- WinForm"tableLayoutPanel和flowLayoutPanel的使用"
- JDK的下载、安装、配置
- SDUTACM 图结构练习——BFSDFS——判断可达性
- Android线程调用的正确姿态
- 网络开发常识
- iOS 图片拉伸处理
- 图片热点链接的设立方法
- 全景图制作方法
- Razor
- Linux下文件的相关操作(fopen、fwrite、fread、fseek、ftell)
- iOS开发 - 第05篇 - 项目 - 10 - 发微博
- JVM常用优化参数说明
- Oracle数据库中的ROWNUM和ORDER BY执行顺序
- 网站收集