V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
jialiangnull
V2EX  ›  iDev

iOS 客户端图片 webp 压缩

  •  
  •   jialiangnull · 2017-07-07 10:41:17 +08:00 · 5351 次点击
    这是一个创建于 2707 天前的主题,其中的信息可能已经有所发展或是发生改变。

    代码:

    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.

    第 1 条附言  ·  2017-07-10 11:57:13 +08:00

    此贴已结束. 客户端上传采取的方案是: 由于webP解压时间很慢,所以暂时采用75 质量的jpeg 压缩图片方案。 客户端显示图片:采用的是七牛云,直接取出webP图片,在客户端采用的是SDWebImage + webp. https://developer.qiniu.com/dora/manual/1270/the-advanced-treatment-of-images-imagemogr2

    8 条回复    2017-07-07 16:38:31 +08:00
    fds
        1
    fds  
       2017-07-07 10:53:29 +08:00
    压缩图片本来就不会太快吧,注意别堵塞主线程就行。
    jialiangnull
        2
    jialiangnull  
    OP
       2017-07-07 10:58:48 +08:00
    @fds
    ```
    UIImageJPEGRepresentation(aParam.uploadImage,0.75);
    UIImagePNGRepresentation
    ```
    都是毫秒级的,非常之快. 但是 webp 压缩图片慢的令人恐惧,而且许多交互并不是不堵塞主线程就可以的,试想换一个头像需要 6-7 秒,我觉得是不能忍受的.
    honeycomb
        3
    honeycomb  
       2017-07-07 11:27:55 +08:00 via Android
    webp 的压缩速度据说很慢
    yautou
        4
    yautou  
       2017-07-07 13:00:34 +08:00
    既然都说很慢,那为啥需要放在客户端来压缩呢?服务器来处理这个步骤不是更好?
    jialiangnull
        5
    jialiangnull  
    OP
       2017-07-07 13:03:05 +08:00
    下面是 png 的转换
    png-> webp(75) 1280x1280
    1280x1280 大小(bit) 时间(s)
    png 3537713 1s-2s
    webp(75) 14336 5s-6s
    jialiangnull
        6
    jialiangnull  
    OP
       2017-07-07 13:05:24 +08:00
    @yautou 因为是需求, 我想确定这个是只能在服务器做,还是客户端也可以做,是我用的代码层次的问题,还是本身这个转换就是非常慢.
    fds
        7
    fds  
       2017-07-07 15:25:10 +08:00
    @jialiangnull 更换头像的话,你立即给用户换上新的,然后在背景慢慢压缩上传就完了呗。webP 压缩就是慢,解压其实也不是特别快的。
    beepony
        8
    beepony  
       2017-07-07 16:38:31 +08:00
    为什么要这么麻烦,又拍云支持 Webp 自适应功能,只要放在 CDN 上,请求头里带上 accept:image/webp 就可以自动转换了: https://www.upyun.com/webp
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1030 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:29 · PVG 04:29 · LAX 12:29 · JFK 15:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.