gpt4 book ai didi

详解IOS开发中图片上传时两种图片压缩方式的比较

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章详解IOS开发中图片上传时两种图片压缩方式的比较由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

IOS 图片上传时两种图片压缩方式的比较 。

上传图片不全面的想法:把图片保存到本地,然后把图片的路径上传到服务器,最后又由服务器把路径返回,这种方式不具有扩展性,如果用户换了手机,那么新手机的沙盒中就没有服务器返回的图片路径了,此时就无法获取之前已经上传了的头像了,在项目中明显的不可行.

上传图片的正确方式:上传头像到服务器一般是将图片NSData上传到服务器,服务器返回一个图片NSString地址,之后再将NSString的路径转为url并通过url请求去更新用户头像(用户头像此时更新的便是NSString) 。

代码为:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
  // 设置请求格式
  manager.requestSerializer = [AFJSONRequestSerializer serializer];
  // 设置返回格式
  manager.responseSerializer = [AFJSONResponseSerializer serializer];
[manager POST:[NSString stringWithFormat:@ "%@%@" , XLImageServerHost, functionName] parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
/////传的图片数据放这里
  NSData *eachImgData = UIImageJPEGRepresentation(image, 0.5);
  [formData appendPartWithFileData :eachImgData name : @ "upload" fileName : @ "picture.jpg" mimeType : @ "image/jpeg" ];
  } success:^(AFHTTPRequestOperation *operation, id responseObject) {
  ///请求成功
  } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
  ///请求失败
  }];

现在来介绍一下:UIImageJPEGRepresntation 和 UIImagePNGRepresontation的区别 。

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

UIImageJPEGRepresntation:

UIImageJPEGRepresentation方法在耗时上比较少 而UIImagePNGRepresentation耗时操作时间比较长 。

?
1
-( void )imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info

使用UIImagePNGRepresentation取得照片时候可能会造成卡顿的现象 。

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

UIImagePNGRepresontation:

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,并可根据自己的实际使用场景,设置压缩系数,进一步降低图片数据量大小. 。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! 。

最后此篇关于详解IOS开发中图片上传时两种图片压缩方式的比较的文章就讲到这里了,如果你想了解更多关于详解IOS开发中图片上传时两种图片压缩方式的比较的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com