<iOS>UIImage变为NSData并进行压缩

http://www.cnblogs.com/robinkey/archive/2013/01/21/2869930.html

//sdk中提供了方法可以直接调用

UIImage *img = [UIImage imageNamed:@"some.png"];

NSData *dataObj = UIImageJPEGRepresentation(img, 1.0);

//下面是sdk中UIImage.h头文件中的内容

UIKIT_EXTERN NSData *UIImagePNGRepresentation(UIImage *image);

// return image as PNG. May return nil if image has no CGImageRef or invalid bitmap format

UIKIT_EXTERN NSData *UIImageJPEGRepresentation(UIImage *image, CGFloat compressionQuality);

// return image as JPEG. May return nil if image has no CGImageRef or invalid bitmap format. compression is 0(most)..1(least)

JPEG的转换方法里面第二个参数是压缩系数,可以有效的减小图片的大小。UIImagePNGRepresentation(UIImage* image) 要比UIImageJPEGRepresentation(UIImage* image, 1.0) 返回的图片数据量大很多。项目中做图片上传之前,经过测试同一张拍照所得照片png大小在8M,而JPG压缩系数为0.75时候,大小只有1M。而且,将压缩系数降低对图片视觉上并没有太大的影响。

时间: 2024-10-31 13:48:21

<iOS>UIImage变为NSData并进行压缩的相关文章

iOS-UIImage变为NSData并进行压缩

<iOS>UIImage变为NSData并进行压缩 //sdk中提供了方法可以直接调用 UIImage *img = [UIImage imageNamed:@"some.png"]; NSData *dataObj = UIImageJPEGRepresentation(img, 1.0); //下面是sdk中UIImage.h头文件中的内容 UIKIT_EXTERN NSData *UIImagePNGRepresentation(UIImage *image); //

IOS UIImage类方法总结

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

ios mac 对照片进行JPEG压缩

1. 在iOS上可以使用 API UIImageJPEGRepresentation 对照片数据进行JPEG压缩: 我们知道iOS其实是MAC OS 的移植,那么MAC上肯定也有相应的JPEG压缩方法: 在mac上了,找了NSImage的API没有发现直接的JPEG压缩方法: 但是有NSBitmapImageRep,下面来测试一下,iOS和MAC上的JPEG压缩是否一致: 2. 首先用iOS 来压缩一张照片 UIImage *timg = [UIImage imageWithContentsOf

iOS NSDictionary、NSData、JSON等 数据类型相互转换

1.NSDictionary类型转换为NSData类型: NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys: @"balance", @"key", @"remaining balance", @"label", @"45", @"value", @"USD", @"curre

iOS UIImage(转载)

UIImage 是一种比较有难度的显示图片的方式,UIImage 可以从文件或者 ImageData 中来显示图片. 如果可以图形化操作,建议使用 ImageView 这个 Control 来显示图片,毕竟是图形化可视操作. 当从 ImageData 中创建图片的时候,一定要注意图片的大小和尺寸,因为这样是存在内存中,如果图片过大或者图片过多,很容易引起内存泄漏:如果是从 文件 中选择图片,则可以手工选择图片是否缓存在内存中. UIImage 支持的图片类型有:tiff,tif,jpg,jpeg

iOS 基础类解析 - NSData

NSData Class Reference Inherits from NSObject Conforms to NSCopying NSMutableCopying NSSecureCoding NSObject (NSObject) Framework /System/Library/Frameworks/Foundation.framework Availability Available in iOS 2.0 and later. Declared in NSData.h Compan

iOS - Usage of NSData

Reference link : https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/BinaryData/Tasks/WorkingBinaryData.html 1. create NSData, here msgData is also a NSData: const Byte * data = (const Byte *)[msgData bytes]; heartbeat.rawData = [N

iOS UIImage 转NSString

项目中可能会有这样的需求,比如图片上传服务器时一般都会转成NSString再上传 那么问题来了,图片如何转为NSString ,已经被转为NSString的图片如何再转成图片 其实很简单,给大家两个方法就ok //图片转字符串 -(NSString *)UIImageToBase64Str:(UIImage *) image { NSData *data = UIImageJPEGRepresentation(image, 1.0f); NSString *encodedImageStr = [

iOS中UIImage存为本地文件与UIImage转换为NSData

UIImage *[email protected]"XXX"; //png格式 NSData *imagedata=UIImagePNGRepresentation(image); //JEPG格式 //NSData *imagedata=UIImageJEPGRepresentation(image); NSArray*paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES