代码之家  ›  专栏  ›  技术社区  ›  One Crayon

无情地为web压缩大型图像

  •  8
  • One Crayon  · 技术社区  · 17 年前

    我有一个非常大的背景图像(大约940x940像素),我想知道是否有人有技巧将一个如此大的文件压缩到Photoshop无法处理的程度?从Photoshop获得的质量没有严重损失的最佳压缩是PNG 8(250 KB);有没有人知道一种方法可以将图像压缩到比这个更深的程度(可能在保存后压缩PNG)?

    我通常不会优化这么大的图像,所以我希望有人能给我一些建议。

    17 回复  |  直到 13 年前
        1
  •  14
  •   coobird    17 年前

    这将首先取决于您试图压缩的图像类型。这两个基本类别是:

    • 插图

    拍照 (如照片),a lossy compression JPEG 这将是最好的,因为它将删除人类视觉感知不容易注意到的细节。这将允许非常高的质量压缩率。缺点是过度压缩会导致非常明显的后果 compression artifacts .

    包含相同颜色的大区域,使用 lossless compression PNG 或 GIF run-length encoding (RLE)。

    现在,正如您特别提到的PNG,我将根据我使用PNG的经验进行讨论。

    首先,进一步压缩PNG不是一个可行的选择,因为 无法压缩已压缩的数据 . 任何数据压缩都是如此;移除 entropy 从源数据(基本上是可以以更紧凑的方式表示的重复模式)可以减少存储信息所需的空间量。PNG已经采用各种方法以无损方式高效压缩图像。

    也就是说,至少有一种方法可以进一步减小PNG的大小:通过 . 通过使用“索引颜色”(基本上是在图像本身中嵌入自定义调色板),您可以减小文件的大小。但是,如果图像开始时有许多颜色(例如具有颜色渐变或摄影图像),则您可能无法减少图像中使用的颜色数量,而不会造成明显的质量损失。

    基本上,这将归结为一些尝试和错误,看看对图像的更改是否会导致图像质量和文件大小的任何变化。


    Paul Fisher的评论提醒我,我也可能不建议使用GIF。Paul指出,PNG在几乎所有情况下都比GIF更好地压缩静态线条艺术。

    此外,Kent Fredric关于减少颜色深度的评论在某些情况下导致了文件大小的增加。虽然这只是猜测,但有可能 dithering 通过在图像中引入更多的熵,导致图像变得不可压缩(因为抖动引入了具有不同颜色的像素来模拟某种其他颜色,有点像混合不同颜色的颜料最终得到另一种颜色)。

        2
  •  7
  •   seanb    17 年前

    看看 http://www.irfanview.com/ ,是一首老歌,但却是一首好歌。

    我们发现它能够很好地进行多路径png压缩,并且批处理速度比PS快。

    这里也有PNGOUT http://advsys.net/ken/utils.htm

        3
  •  5
  •   Kent Fredric    17 年前

    这里有一点其他海报可能没有注意到,我通过实验发现:

    在某些安装中,默认行为是将图像颜色配置文件的完整副本与图像一起保存。

    没有

        4
  •  3
  •   Sparr    17 年前

    pngcrush 可以进一步压缩PNG文件而不丢失任何数据,它将应用不同的编码和压缩选项组合,以查看哪一种效果最好。

        5
  •  2
  •   Sparr    17 年前

    如果图像本质上是照片,JPEG压缩效果会比PNG8好得多,因为同样的质量损失。

        6
  •  2
  •   bradheintz    17 年前
        7
  •  1
  •   Marc Novakowski    17 年前

    这在很大程度上取决于图像的类型。如果它有很多纯色和图案,那么PNG或GIF可能是最好的选择。但是如果它是一张照片逼真的图像,那么JPG会更好——你可以将JPG的质量降低到你想要的压缩/质量折衷的程度(Photoshop非常擅长在你调整质量时向你展示最终图像的预览)。

        8
  •  1
  •   Svante    17 年前

    “保存后压缩PNG”部分对我来说似乎是一个深刻的误解。你不能神奇地压缩超过某一点而不丢失信息。

    首先要考虑的是决议是否必须如此巨大。在两个方向上降低10%的分辨率可将文件大小减少19%。

    接下来,尝试几种不同的压缩算法,不同级别的压缩与信息/质量损失。如果图像是粗略的,您可能会逃脱相当严格的JPEG压缩。

        9
  •  1
  •   david valentine    17 年前

    我会平铺它,除非你绝对确定你的观众有带宽。

        10
  •  1
  •   marioddd    17 年前

    要从JPEG文件中获得更多信息,可以使用“另存为Web”对话框中的“修改的质量设置”。

    1. 将此遮罩/选择另存为频道,并为频道命名
    2. 使用文件->另存为Web
    3. 选择JPEG作为文件格式
        11
  •  1
  •   Meekohi    14 年前

    http://www.jpegmini.com 是一项新的服务,它创建的标准JPG文件大小非常小。我在这方面很成功。

        12
  •  1
  •   ra00l    13 年前

    RIOT . 除了更改的图像外,您还可以看到原始图像。

        13
  •  0
  •   Paul Sonier    17 年前

    JPEG2000提供了比JPEG(或PNG)高得多的摄影质量图像的压缩比。你的个人压缩需要很好的“无损”和JPEG2000。

        14
  •  0
  •   Wedge    17 年前

    我在jpeg方面一直很幸运。确保将photoshop配置为不会自动将缩略图保存为JPEG格式。根据我的经验,虽然基线优化效果很好,但通过使用3次渐进压缩,我获得了最大的爆炸/降压比。选择非常低的质量级别(例如2或3)并进行试验,直到找到一个好的折衷方案。

        15
  •  0
  •   Bill Karwin    17 年前

    PNG图像已经在内部进行了压缩,这种压缩方式并不能从更多的压缩中获益(如果您尝试压缩它,它实际上可能会扩展)。

    • 将分辨率从940x940降低到类似470x470的更小值。
    • 减少颜色深度
    • 使用有损压缩工具(如JPEG)进行压缩

    编辑: 当然,250KB对于web背景来说是很大的。您可能还想重新思考需要此功能的图形设计。

        16
  •  0
  •   Habil    13 年前

    Caesium 是我见过的最好的工具。