DearTanker
V2EX  ›  Android

你们是如何解决 Android 压缩图片质量差的问题的?

  •  2
     
  •   DearTanker · Dec 16, 2014 · 21398 views
    This topic created in 4351 days ago, the information mentioned may be changed or developed.
    同样原图,缩放为宽度720px

    iOS下压缩为质量60%都可以完爆Android压缩质量100%的,而且文件本身差不多只有一半。

    研究发现,为了降低肉眼可见的差别,新浪微博的做法是将宽度缩放为1200px,但是iOS压缩后的图片比Android要大的多。

    据说是Android本身使用的libjpeg库历史遗留问题

    http://www.cnblogs.com/MaxIE/p/3951294.html

    有没有人研究Android下图片压缩的更好办法呢。。

    Android微博,宽度1200px,压缩质量未知,文件大小295k

    
    iPhone微博,宽度1200px,压缩质量未知,文件大小565k

    

    Android,宽度720px,压缩质量60,文件大小98.8k

    http://oi60.tinypic.com/5cwyee.jpg

    iOS,宽度720px,压缩质量60,文件大小152k

    http://oi60.tinypic.com/slilat.jpg
    36 replies  •  2014-12-29 14:07:21 +08:00
    est
    est
    Dec 16, 2014
    1
    自己打包进去一个 libjpeg/mozjpeg 不行么。。。
    DearTanker
    DearTanker
    OP
    Dec 16, 2014 via iPhone
    2
    改天写篇博文分享一下这两天的发现
    DearTanker
    DearTanker
    OP
    Dec 16, 2014 via iPhone
    3
    @est 有没有好的库推荐?
    michaelye1988
    michaelye1988
    Dec 16, 2014
    4
    还没发现这个问题,不知道你的需求是什么样的,一般图片的话,我是这样做的,根据当前的手机分辨率去服务端请求不同尺寸的图片,服务端一般需要对一张图片提供多种尺寸。
    DearTanker
    DearTanker
    OP
    Dec 16, 2014 via iPhone
    5
    @michaelye1988 上传啊,同一张照片两个平台相同需求出来的图片质量相差太大
    whuhacker
    whuhacker
    Dec 16, 2014
    6
    你是如何定义质量差的?为啥我看不出来有啥差别……
    相比之下 Android 的文件大小还有优势些
    DearTanker
    DearTanker
    OP
    Dec 16, 2014
    7
    @whuhacker 1200px确实没那么明显,最下面的那2张同为720px的时候我不信你看出来那张差很多
    GhostFlying
    GhostFlying
    Dec 16, 2014
    8
    我都是压png的。。
    icedx
    icedx
    Dec 16, 2014 via Android
    9
    楼主发现了不得了的秘密...
    我给一个团队写过一个压缩引擎, 就是这样解决的...
    ozking
    ozking
    Dec 16, 2014
    10
    http://oi60.tinypic.com/5cwyee.jpg
    哈哈哈,这张图片都炸毛了
    DearTanker
    DearTanker
    OP
    Dec 16, 2014
    11
    @xudshen 所以说很明显啊。
    DearTanker
    DearTanker
    OP
    Dec 16, 2014
    12
    @icedx 你是说弄大图吗?
    chizhong
    chizhong
    Dec 16, 2014
    14
    @seathink 这也行…………
    icedx
    icedx
    Dec 16, 2014 via Android
    15
    @DearTanker 不, 单纯的压缩, 不依赖Skia
    DearTanker
    DearTanker
    OP
    Dec 16, 2014
    16
    @seathink 嗯,有看到这个中文版的,但是问题是,现在找不到编译好的libjpeg-turbo库文件,然后公司没人会NDK编译。。
    DearTanker
    DearTanker
    OP
    Dec 16, 2014
    17
    @icedx 能详细说说么。。。
    icedx
    icedx
    Dec 16, 2014 via Android
    18
    @DearTanker 我就翻了翻那团队的统计数据, 根据机型分布封装了一个libjpeg, 开放简单的接口给他们用...
    michaelye1988
    michaelye1988
    Dec 16, 2014
    19
    @DearTanker 哦,那就不懂了,这确实是个问题。
    seathink
    seathink
    Dec 16, 2014
    20
    @DearTanker 里面有较详细的编译步骤,自己看看就差不多了
    pubby
    pubby
    Dec 16, 2014
    21
    那不折腾的做法是 安卓上缩一个大点的图,尽量保留一些细节?
    DearTanker
    DearTanker
    OP
    Dec 16, 2014
    22
    @pubby 对啊,最简单的解决办法就是图大点,像新浪微博一样,不过同等宽1200px,Android的文件大小只有iOS的一半左右,个人猜测,新浪微博没有自己编译一个库。这可就苦了iOS,要多传一倍的流量,难道这就是很多人觉得苹果机耗流量的原因么= =
    pubby
    pubby
    Dec 16, 2014
    23
    @DearTanker 没有啊,就安卓的1200px, iOS的还是720px啊。
    反正要提高画质,安卓就要增大文件尺寸嘛
    DearTanker
    DearTanker
    OP
    Dec 16, 2014
    24
    @pubby 嗯,我说的是微博的做法,牺牲了iOS的体验。
    ltyhpynyh
    ltyhpynyh
    Dec 16, 2014
    25
    之前没注意,关注一下
    twocity
    twocity
    Dec 16, 2014
    26
    lz可以提供一下原图吗
    DearTanker
    DearTanker
    OP
    Dec 16, 2014
    27
    @twocity 可以,包括原图,Android和iOS处理后的图片,分别都有60%和100%的,但是宽度都是720px的。希望可以帮到你

    http://pan.baidu.com/s/1pJ5arMF
    twocity
    twocity
    Dec 16, 2014
    28
    @DearTanker 多谢
    twocity
    twocity
    Dec 17, 2014
    29
    我试了一下。Android下,同样的压缩质量,效果并没有lz的差(但iOS确实效果好一些)。这里是测试结果http://goo.gl/yddMfG,这是测试代码http://goo.gl/lXq9JJ
    DearTanker
    DearTanker
    OP
    Dec 17, 2014
    30
    @twocity 太感谢了,确实效果比我出来的好很多,看边缘的细毛就可以发现了,我研究一下。
    DearTanker
    DearTanker
    OP
    Dec 17, 2014
    31
    @twocity 你用的是2.2以后才有的ThumbnailUtils.extractThumbnail这个方法吧,这样不是不兼容2.2以下的机器?
    twocity
    twocity
    Dec 17, 2014
    32
    @DearTanker 可以自己写一个简单的http://goo.gl/zxo537
    DearTanker
    DearTanker
    OP
    Dec 23, 2014
    33
    @twocity



    这张图,安卓出来的相比iOS出来的简直是惨不忍睹。。。但是其他图片都还好~
    twocity
    twocity
    Dec 23, 2014
    34
    @DearTanker 我看了下确实是这样...那就无解了
    DearTanker
    DearTanker
    OP
    Dec 23, 2014
    35
    @twocity 嗯。现在只能是提升图片的分辨率了。分辨率提高后,不会这么残。。
    DearTanker
    DearTanker
    OP
    Dec 29, 2014
    36
    @twocity 还有个蛋疼的问题,有些图设置质量100%,出来的图比原图都大,改成95%依然还是有变大。。。

    图片原图发给你试试:

    http://pan.baidu.com/s/1jGmTWxS
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2048 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 06:17 · PVG 14:17 · LAX 22:17 · JFK 01:17
    ♥ Do have faith in what you're doing.