NSLog(@"end1___%@",[NSDate new]);
NSData *imageData = UIImageWebPRepresentation([UIImage sd_imageWithData:tempImageData]);
NSLog(@"end2___%@",[NSDate new]);
NSLog(@"jpeg__%lu\n webP__%lu",UIImageJPEGRepresentation(aParam.uploadImage, 0.75).length,imageData.length);
2017-07-07 10:34:55.351test[7754:2490842] end1___2017-07-07 02:34:55 +0000
2017-07-07 10:35:06.026test[7754:2490842] end2___2017-07-07 02:35:06 +0000
2017-07-07 10:35:06.093test[7754:2490842] jpeg__710685
webP__31258 //字节
是因为本身图片压缩慢,还是因为所用的 libwebP 库过低(现在是 0.6.0,但是因为是 pod SDWebImage 所以是 0.5.1),还是因为转换方法的问题? 因为不懂安卓,请问安卓下和 iOS 区别大吗? SOS.
此贴已结束. 客户端上传采取的方案是: 由于webP解压时间很慢,所以暂时采用75 质量的jpeg 压缩图片方案。 客户端显示图片:采用的是七牛云,直接取出webP图片,在客户端采用的是SDWebImage + webp. https://developer.qiniu.com/dora/manual/1270/the-advanced-treatment-of-images-imagemogr2
1
fds 2017-07-07 10:53:29 +08:00
压缩图片本来就不会太快吧,注意别堵塞主线程就行。
|
2
jialiangnull OP @fds
``` UIImageJPEGRepresentation(aParam.uploadImage,0.75); UIImagePNGRepresentation ``` 都是毫秒级的,非常之快. 但是 webp 压缩图片慢的令人恐惧,而且许多交互并不是不堵塞主线程就可以的,试想换一个头像需要 6-7 秒,我觉得是不能忍受的. |
3
honeycomb 2017-07-07 11:27:55 +08:00 via Android
webp 的压缩速度据说很慢
|
4
yautou 2017-07-07 13:00:34 +08:00
既然都说很慢,那为啥需要放在客户端来压缩呢?服务器来处理这个步骤不是更好?
|
5
jialiangnull OP 下面是 png 的转换
png-> webp(75) 1280x1280 1280x1280 大小(bit) 时间(s) png 3537713 1s-2s webp(75) 14336 5s-6s |
6
jialiangnull OP @yautou 因为是需求, 我想确定这个是只能在服务器做,还是客户端也可以做,是我用的代码层次的问题,还是本身这个转换就是非常慢.
|
7
fds 2017-07-07 15:25:10 +08:00
@jialiangnull 更换头像的话,你立即给用户换上新的,然后在背景慢慢压缩上传就完了呗。webP 压缩就是慢,解压其实也不是特别快的。
|
8
beepony 2017-07-07 16:38:31 +08:00
为什么要这么麻烦,又拍云支持 Webp 自适应功能,只要放在 CDN 上,请求头里带上 accept:image/webp 就可以自动转换了: https://www.upyun.com/webp
|