重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

ios开发裁剪图片,ios开发裁剪图片软件

iOS 截取、剪裁、压缩和拉伸图片

在 iOS 开发过程中,对图片的处理不仅仅局限于显示、渲染样式,还常常遇到对view指定区域截图,以及对图片的压缩、拉伸等操作。下面我们介绍一下类似的操作过程:

专注于为中小企业提供成都做网站、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业顺城免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

注:通过 UIGraphicsBeginImageContextWithOptions(CGSize size, BOOL opaque, CGFloat scale) 和 drawViewHierarchyInRect 的配合来截取并渲染出来的图片位置和大小,是由前者的size和后者的rect共同决定的。 即,画布相当于父view,其尺寸为size,截图绘制到画布中的位置和尺寸为rect。

想试一试的同学,可以创建一个demo,取不同的size和rect值,来观察画布和截图的位置。也可以试着将画布和截图完全吻合,即将截图完整的渲染出来,这并不难。

裁剪图片就是对当前的图片按照指定的大小范围生成一个新的图片。需要注意的是如果当前显示图片是2倍图或者3倍图,要么可能尺寸不对,要么截出来的图片很模糊,因此,需要在截图前调整rect值。

注:UIImageJPEGRepresentation 两个参数:图片引用 和压缩系数,而 UIImagePNGRepresentation 只需图片引用作为参数。在实际使用过程中,UIImagePNGRepresentation(UIImage* image) 一般要比UIImageJPEGRepresentation(UIImage* image, 1.0) 返回的图片数据量大,在处理图片时,若对图片质量要求不高,则建议使用UIImageJPEGRepresentation,根据自己的实际使用场景设置压缩系数,进一步降低图片数据量大小。

在 = iOS 5.0 时,UIImage的新方法可以处理图片的拉伸问题:

使用过程:

在 = iOS 6.0 时,UIImage的新方法可以处理图片的拉伸问题:

使用过程:

参考文章:

iOS-图片压缩和裁剪

项目工程里面用到了图片压缩,这边做了个笔记整理了一下。

压缩:图片文件的体积变小,长宽尺寸不变,质量可能下降。

裁剪:文件尺寸变小,长宽尺寸变小,文件体积大小会变小。

在iOS中图片压缩使用到两个关键方法: UIImageJPEGRepresentation 和 UIImagePNGRepresentation 使用方式如下。

下面我们用图片测试一下两个方法的差异。就使用的本文上面的那张傍晚iPhone拍摄的图片,具体参数如图:

使用 UIImagePNGRepresentation(image) 返回的数据量大小为 1,299,138 字节(磁盘上的1.3 MB) 。

使用 UIImageJPEGRepresentation(image, 1.0) 返回的数据量大小为 183,531 字节(磁盘上的184 KB 。

可以看到 UIImagePNGRepresentation(UIImage \*image) 要比 UIImageJPEGRepresentation(UIImage* image, 1.0) 返回的图片数据量大很多。

使用 UIImageJPEGRepresentation 可以大幅度降低图片的数据量,比如刚才拍摄的那张图片,通过该方法压缩之后,数据大小仅为 184 KB 。 更改压缩系数为0.5再读取数据时,返回的数据大小只有 111 KB 。图片大小压缩了,但是清晰度并没有像差多少,质量也没有明显的降低。

所以在读取图片数据的时候,建议优先使用 UIImageJPEGRepresentation ,根据实际业务需求,设置压缩系数。

iOS图片自由裁剪

遇到的问题:

相机或相册获取图片过大在运行时内存会瞬间提高很多(60M左右,可能会更大),我的解决方案是在获取图片时对图片进行了裁剪(对图片质量要求高的不适用)

附方法:具体裁剪的大小根据自己的需求设置

可扩展的功能:(有兴趣的可以尝试一下)

1.图片放大、缩小

2.整体拖动裁剪区域

iOS-自定义照片选择器+裁剪图片

具体实现就两个步骤:

1.用系统的 Photos/Photos.h 框架异步获取到相册中的所有图片(包括原图和缩略图),然后用 collectionview 进行展示缩略图。

2.再对获取到相册图片的原图进行裁剪,分圆形裁剪和方形裁剪。裁剪框路径使用贝塞尔曲线分别设置的路径

/**

获取系统相册中所有的缩略图 和原图

缩略图 尺寸 大约 {32.5,60} (allSmallImageArray 回调获取到的缩略图 图片数组)

原图 尺寸 大约 屏幕等大 (allOriginalImageArray 回调获取到的大图 图片数组)

*/

/**

然后自定义一个照片控制器继承于 UICollectionViewController ,设置代理回调方法和初始化方法

HPPhotoPickerController.h


本文标题:ios开发裁剪图片,ios开发裁剪图片软件
网站链接:http://cqcxhl.com/article/dseshji.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP