UIImageJPEGRepresentation和UIImagePNGRepresentation

在Iphone上有两种读取图片数据的简单方法: UIImageJPEGRepresentation和UIImagePNGRepresentation.

UIImageJPEGRepresentation函数需要两个参数:图片的引用和压缩系数.而UIImagePNGRepresentation只需要图片引用作为参数.通过在实际使用过程中,比较发现: UIImagePNGRepresentation(UIImage* image) 要比UIImageJPEGRepresentation(UIImage* image, 1.0) 返回的图片数据量大很多.譬如,同样是读取摄像头拍摄的同样景色的照片, UIImagePNGRepresentation()返回的数据量大小为199K ,而 UIImageJPEGRepresentation(UIImage* image, 1.0)返回的数据量大小只为140KB,比前者少了50多KB.如果对图片的清晰度要求不高,还可以通过设置 UIImageJPEGRepresentation函数的第二个参数,大幅度降低图片数据量.譬如,刚才拍摄的图片, 通过调用UIImageJPEGRepresentation(UIImage* image, 1.0)读取数据时,返回的数据大小为140KB,但更改压缩系数后,通过调用UIImageJPEGRepresentation(UIImage* image, 0.5)读取数据时,返回的数据大小只有11KB多,大大压缩了图片的数据量 ,而且从视角角度看,图片的质量并没有明显的降低.因此,在读取图片数据内容时,建议优先使用UIImageJPEGRepresentation,并可根据自己的实际使用场景,设置压缩系数,进一步降低图片数据量大小.

时间: 2024-07-29 20:12:21

UIImageJPEGRepresentation和UIImagePNGRepresentation的相关文章

关于Kingfisher--备用

序言--感谢好心大神分享 Kingfisher 是由 @onevcat 编写的用于下载和缓存网络图片的轻量级Swift工具库,其中涉及到了包括GCD.Swift高级语法.缓存.硬盘读写.网络编程.图像编码.图形绘制.Gif数据生成和处理.MD5.Associated Objects的使用等大量iOS开发知识. 本文将详尽的对所涉及到的知识点进行讲解,但由于笔者水平有限,失误和遗漏之处在所难免,恳请前辈们批评指正. 一.Kingfisher的架构 Kingfisher.png Kingfisher

IOS UIImage类方法总结

IOS中对图片的处理 UIImage 相信做项目时肯定会有用到 UIImage 这个类,那我们就来看一下这个类中都有什么内容. 其实这篇文章就是在看文档的时候想记录一下文档中得方法. UIImage 继承于NSObject 下面介绍一下UIImage中的方法 首先是我们最常用的 通过图片的文件名来获取这个图片 + (UIImage *)imageNamed:(NSString *)name //要注意的是这个方法适用于已经导入到工程中的图片 创建新图片 1.+ (UIImage *)imageW

ios中图像进行压缩方法汇总

ios中图像进行压缩方法汇总 在Iphone上有两种读取图片数据的简单方法: UIImageJPEGRepresentation和UIImagePNGRepresentation. UIImageJPEGRepresentation函数需要两个参数:图片的引用和压缩系数.而UIImagePNGRepresentation只需 要图片引用作为参数. 方法一: 代码如下: - (UIImage*)scaleFromImage:(UIImage*)image scaledToSize:(CGSize)

UIImage类方法总结及UIImage生成方法对比

1.UIImage 生成方法的对比 Apple官方的文档为生成一个UIImage对象提供了两种方法: 1. imageNamed,其参数为图片的名字:优点:加载时会缓存图片,用于图片的频繁使用:缺点:占用内存 2. imageWithContentsOfFile,其参数也是图片文件的路径.优点:仅加载图片,不会缓存,用于价值次数较少的情况,降低内存消耗 那么两种有什么区别吗? 肯定是有的.根据Apple的官方文档: imageNamed: 这个方法用一个指定的名字在系统缓存中查找并返回一个图片对

Xcode开发技巧——调试

断点(Breakpoint)断点是调试中非常重要的一个手段.由于在执行到某些代码前需要执行许多其它代码,不可能用单步跟踪一条一条执行过来,这时只要在需要暂停的地方设置一个断点,然后让程序运行,当执行到这个断点位置时不需要用户干预就会暂停并返回集成调试程序.断点必须位于可执行代码行上,凡设置在注释,空白行,变量说明上的都是无效的. 一.概述 1.掌握调试技巧,调试技术 最基本,最重要的调试手段包括:单步跟踪,断点,变量观察等. 单步跟踪(Step)所谓单步跟踪是指一行一行地执行程序,每执行一行语句

iOS 拷贝、剪切和粘贴理论基础(转)

简介 在iPhone OS 3.0之后,用户可以在一个应用程序上拷贝文本.图像.或其它数据,然后粘贴到当前或其它应用程序的不同位置上.比如,您可以从某个电子邮件中拷贝一个地址,然后粘贴到Contacts程序的地址域中.目前,UIKit框架在UITextView.UITextField.和UIWebView类中实现了拷贝-剪切-粘贴支持.如果您希望在自己的应用程序中得到这个行为,可以使用这些类的对象,或者自行实现. 但在iOS7.0后,UIPasteboard由共享变为沙盒化了,UIPastebo

iOS 使用AFN 进行单图和多图上传 摄像头/相册获取图片,压缩图片

图片上传时必要将图片进行压缩,不然会上传失败 首先是同系统相册选择图片和视频.iOS系统自带有UIImagePickerController,可以选择或拍摄图片视频,但是最大的问题是只支持单选,由于项目要求需要支持多选,只能自己自定义.获取系统图库的框架有两个,一个是ALAssetsLibrary,兼容iOS低版本,但是在iOS9中是不建议使用的:另一个是PHAsset,但最低要求iOS8以上.兼容到iOS7,可以选择了ALAssetsLibrary 现在我们先说选择一张图的情况 一.单图多图上

iOS图片压缩处理

理解概念 首先,我们必须明确图片的压缩其实是两个概念: “压” 是指文件体积变小,但是像素数不变,长宽尺寸不变,那么质量可能下降. “缩” 是指文件的尺寸变小,也就是像素数减少,而长宽尺寸变小,文件体积同样会减小. 图片“压”处理 对于“压”的功能,我们可以使用UIImageJPEGRepresentation或UIImagePNGRepresentation方法实现,如: 1 2 3 NSData *imgData = UIImageJPEGRepresentation(image, 0.5)

iOS 图片压缩UIImage方法扩展

http://blog.csdn.net/justinjing0612/article/details/8751269 iOS自带的提供了一个API如下 [html] view plaincopy NSData *UIImageJPEGRepresentation(UIImage *image, CGFloat compressionQuality); 在Iphone上有两种读取图片数据的简单方法: UIImageJPEGRepresentation和UIImagePNGRepresentati