系统至ios6之后,关于图片拉伸的方法已经扩展至3个函数:

1.ios4提供的方法:

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight

这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是不拉伸区域距离左边框的宽度,第二个参数是不拉伸区域距离上边框的宽度,其操作本质是对一个像素的复制拉伸,故没有渐变效果,这也是其缺点所在。
参数的意义是,如果参数指定10,5。那么,图片左边10个点,上边5个点。不会被拉伸,x坐标为11的点会被横向复制,y坐标为6的点会被纵向复制。注意:只是对一个点像素进行复制到指定的宽度。

2.ios5提供的方法

- (UIImage *)resizableImageCapInsets:(UIEdgeInsets)Insets

其中Insets这个参数的格式是(top,left,bottom,right),从上、左、下、右分别在图片上画了一道线,这样就给一个图片指定了一个矩形区域。只有在框里面的部分才会被拉伸,而框外面的部分则保持不变。比如(20,5,10,5),意思是下图矩形里面的部分可以被拉伸,而其余部分不变。

3.ios6提供的方法:

- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode

关于Insets参数,与ios5是相同的,不同的是其后增加了一个拉伸的模式,ios6.0的版本提供了

UIImageResizingModeTile和

UIImageResizingModeStretch两种模式,从名字就可以看出,是平铺模式和拉伸模式。平铺就是复制你Insets指定的矩形区域块来填充你所指定的图片区域,而拉伸就是通过拉伸你Insets指定的矩形区域块来填充你

所需的图片区域。我想,相较4.0的进步你也看出来了,是明显的吧,相较于以前的,图片的resize由一个点变成了一个矩形块,这样你的所指定块的渐变效果,也是可以呈现出来的。

只是,如果你需要兼容4.0的机器的话,那么还是需用老的函数来完成对图片的resize操作的。

欢迎喜欢交流和热心的iphone开发朋友加入qq群参与讨论:186739796,验证码:csdn。

关于图片拉伸的几种方法总结相关推荐

  1. iPhone图片拉伸的几种方法

    到iOS 6.0为止,iOS提供了3种图片拉伸的解决方案,接下来分别详细介绍这些方案. 一.iOS 5.0之前 iOS中有个叫端盖(end cap)的概念,用来指定图片中的哪一部分不用拉伸.比如下图中 ...

  2. matlab中单独存图_Matlab中图片保存的四种方法

    Matlab 中图片保存的四种方法 matlab 的绘图和可视化能力是不用多说的, 可以说在业内是家喻户晓的. Matlab 提供了丰富 的绘图函数,比如 ez** 系类的简易绘图函数, surf . ...

  3. c# pictureBox1.Image的获得图片路径的三种方法 winform

    代码如下:c# pictureBox1.Image的获得图片路径的三种方法 winform 1.绝对路径: this.pictureBox2.Image=Image.FromFile("D: ...

  4. qt 加载 图片旋转_QT 实现图片旋转的两种方法

    第一种方案 使用 QPixmap 的 transformed 函数来实现旋转,这个函数默认是以图片中心为旋转点,不能设置旋转的中心点,使用如下: QMatrix matrix; matrix.rota ...

  5. android 图片叠加xml,Android实现图片叠加效果的两种方法

    本文实例讲述了Android实现图片叠加效果的两种方法.,具体如下: 效果图: 第一种: 第二种: 第一种是通过canvas画出来的效果: public void first(View v) { // ...

  6. pytorch加载自己的图片数据集的两种方法

    目录 ImageFolder 加载数据集 使用pytorch提供的Dataset类创建自己的数据集. Dataset加载数据集 接下来我们就可以构建我们的网络架构: 训练我们的网络: 保存网络模型(这 ...

  7. matlab保存所有图,Matlab中图片保存的5种方法

    matlab的绘图和可视化能力是不用多说的,可以说在业内是家喻户晓的. Matlab提供了丰富的绘图函数,比如ez**系类的简易绘图函数,surf.mesh系类的数值绘图函数等几十个.另外其他专业工具 ...

  8. D3D中2D图片的绘制两种方法

    2014/09/19 (转载自:http://blog.csdn.net/rabbit729/article/details/6388703) 想要在D3D中加载2D图片可以使用如下两种方法(我只想到 ...

  9. android 画布叠加,Android实现图片叠加效果的两种方法

    本文实例讲述了Android实现图片叠加效果的两种方法.分享给大家供大家参考,具体如下: 效果图: 第一种: 第二种: 第一种是通过canvas画出来的效果: public void first(Vi ...

最新文章

  1. 数据科学家成长指南(下)
  2. Python 3.8 新特性全面解读
  3. Print all attributes and values in a Javascript Object
  4. Cannot SET AUTOTRACE 处理办法
  5. 在C#里调用C++的dll时需要注意的一些问题转
  6. spring中bean的两种注入方式
  7. CentOS 下安装xdebug
  8. vue-cli webpack 打包报错:Unexpected token: punc (()
  9. 云监控 Ganglia 安装步骤 (含python module)
  10. 机器学习 | 特征缩放
  11. 乐视网:对FF与第九城市设立合资公司的计划不知情
  12. json.dumps loads 终于区分出来了
  13. 技术人员如何持续不断的成长?
  14. SEO行业应该如何给客户报价
  15. (原)python中matplot中获得鼠标点击的位置及显示灰度图像
  16. MATLAB解带未知参数的积分方程
  17. 人类数据总量_人类身体的11个极限数据
  18. python空气质量指数计算_Python的学习笔记案例8--空气质量指数计算5.0
  19. SEO流量变现,看这个项目就够了!
  20. 随机梯度下降法,批量梯度下降法和小批量梯度下降法以及代码实现

热门文章

  1. nginx重写url
  2. 抛砖引玉----个人大数据测试小结
  3. 逐浪字库发布开源逐浪萌芽字
  4. 生源985占比100%,北大叉院这个专业本校学生也心仪~
  5. java之数据管理系统软件
  6. java继承excel_Java操作Excel
  7. 参加校招面试测试岗位一次次被刷,耗时一个多月经常偷偷在晚上哭。
  8. 基于蚁群算法的函数寻优算法
  9. 2021秋招-刷题统计
  10. 免签支付是什么意思?