这是一个创建于 159 天前的主题,其中的信息可能已经有所发展或是发生改变。
Swift 语言写的项目,遇到一个问题:
1 。我把一张照片通过 jpegData(compressionQuality: 0.5)方法压缩到 481kb ,然后通过 UIImage(data: data)转成 UIImage ,
2. 调用上传图片方法传入这个 image (之前项目有的方法,入参是 UIImage )
3. 服务端发现我上传的照片是 1.6M 的
排查问题: 我看这个上传图片方法内部的实现是把 UIimage 通过 image.jpegData(compressionQuality: 1.0 )转成 data ,然后上传这个 data 。 通过打印,发现`image.jpegData(compressionQuality: 1.0 )` 这一步得到的 data 竟然是 1.6MB 。 而不是我之前压缩得到 481kb 。 通过查阅资料,应该是 data 转 UIImage 过程中一些数据增减的变化。 解决方案是再次通过`image.jpegData(compressionQuality: 0.5 )`来获取大小,而不是 1.0 。 另外看起来,上传应该直接 data 进行传递,而不是 UIimage ,这样容易造成问题。
我想知道我说的对吗? 感谢大佬们