UIImage图片转NSData

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

UIImageJPEGRepresentation  取UIImage的JPEG格式的NSData

UIImagePNGRepresentation.  取UIImage的PNG格式的NSData

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-11-04 01:42:22

UIImage图片转NSData的相关文章

UIImage图片 与 Base64 转换

UIImage图片转成base64字符串: UIImage *_originImage = [UIImage imageNamed:@"full_playlist_hl.png"]; NSData *_data = UIImageJPEGRepresentation(_image, 1.0f); NSString *_encodedImageStr = [_data base64Encoding]; NSLog(@"===Encoded image:\n%@", _

UIImage图片处理:缩放、设定大小、存储 (转载)

//1.等比率缩放 - (UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize{ UIGraphicsBeginImageContext(CGSizeMake(image.size.width * scaleSize, image.size.height * scaleSize); [image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.s

iOS 图片转NSData-b

iOS开发中 UIImage可能经常需要转为NSData 上传 传递等等 有两个比较常用的方法 UIImageJPEGRepresentation UIImagePNGRepresentation 第一个方法有两个参数 UIImageJPEGRepresentation(UIImage * __nonnull image, CGFloat compressionQuality); 第一个参数就是图片,第二个参数 就是需要设置的清晰度,值介于0到1之前,值越大却清晰,占用空间就越大,反之,值越小清

UIImage图片处理,旋转、截取、平铺、缩放等操作

有时候我们需要处理图片,比如改变大小,旋转,截取等等,所以今天说一说图片处理相关的一些操作.本文所说的方法都是写在UIImage的Category中,这样使用起来也方便:由于代码太多,这里就不贴具体实现代码了,大家可以去我的Github查看demo,效果如下: 颜色相关 1.根据颜色生成纯色图片就是根据制定的颜色生成一张纯色的图片 1 + (UIImage *)imageWithColor:(UIColor *)color; 使用方法,比如设置UIImageView的图片为红色纯图片: 1 se

xcode UIImage图片拉伸

图片拉伸 +(UIImage*)wlisWithImage:(NSString *)name{ //获取图片 UIImage * img=[UIImage imageNamed:name]; //获取图片宽 CGFloat imgW=img.size.width; //获取图片高 CGFloat imgH=img.size.height; //获取可拉伸的图片 return [img resizableImageWithCapInsets:UIEdgeInsetsMake(imgH*0.5, i

UIImage图片拉伸问题

- (UIImage *)stretchableImageWithLeft CapWidth:(NSInteger)leftCapWidth topCapHeight:(NSInteger)topCapHeight 这个函数是UIImage的一个实例函数,它的功能是创建一个内容可拉伸,而边角不拉伸的图片,需要两个参数,第一个是左边不拉伸区域的宽度,第二个参数是上面不拉伸的高度. 根据设置的宽度和高度,将接下来的一个像素进行左右扩展和上下拉伸. 注意:可拉伸的范围都是距离leftCapWidth后

UIImage 图片处理:截图,缩放,设定大小,存储

图片的处理大概就分 截图(capture), 缩放(scale),设定大小(resize), 存储(save)这几样比较好处理, 另外还有滤镜,擦试等, 以后再说在这个Demo code裡, 我写了几个方法 1.等比率缩放- (UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize { UIGraphicsBeginImageContext(CGSizeMake(image.size.width * scaleSize, im

iOS UIImage 图片局部拉伸的一些学习要点

之前 做纯色局部拉伸 通过 top  bottom left  right 相交的阴影拉伸 屡试不爽 实施方法: imageView.image = [[UIImage imageNamed: @"icon_helper_palace_day"] resizableImageWithCapInsets:palaceInset]]; 我用这个方法 去拉伸一个 有图案的图的 相对纯色的那一部分时候 会发现 图片被拉伸的同时 会有被图片局部本身填充的现象 好像是连续的同一个1个半的图 这个时

UIImage图片处理

#pragma mark - #pragma mark - 缩放处理 + (UIImage *)scaleImage:(UIImage *)image withScale:(float)scale { UIGraphicsBeginImageContext(CGSizeMake(image.size.width * scale, image.size.height * scale)); [image drawInRect:CGRectMake(0, 0, image.size.width * s