【问题标题】:Compressed image format压缩图像格式
【发布时间】:2015-02-02 20:35:05
【问题描述】:

假设我有一个完全随机的 2 x 2 像素的 16 位灰度图像。 信息内容为 2 x 2 x 2 字节 = 8 字节。

接下来,我在现在形成边界的 2 x 2 初始像素之间双线性插值 8 x 8 时间像素。对于每个像素,我从彩虹色图中查找一个 3 字节的 RGB 值。 如果我要存储未压缩的图像,现在需要 10 x 10 x 3 字节 = 300 字节。

但是信息内容并没有增加多少。 一个超级智能的压缩算法应该能够查看我的 100 个像素并推断我所做的并存储初始的 2 x 2 灰度像素 + 一个颜色图。

我应该使用哪种压缩的现有图像格式来存储这样的图像?

【问题讨论】:

  • 我觉得你的描述很难理解。你基本上是通过创建 4 个随机灰色角然后在中间有什么来制作一个 10 像素 x 10 像素的网格(我认为)?当你突然引入彩虹和 3 字节 RGB 颜色时,你迷失了我。向我们展示这样一张灰色角落和中间颜色的图像怎么样?

标签: image graphics


【解决方案1】:

取决于您需要图像是有损还是无损。我会假设你想要无损。这取决于您对图像执行的操作以及生成图像的方式。简短的回答是 16 位 PNG 不透明是最好的通用格式。如果您使用有损,JPEG 通常会更好,但这取决于图像像照片一样连续色调的程度。 Google WebP 是一种令人惊叹的格式,它经常让另一种格式大吃一惊,但目前还没有很好的支持。

例如,如果您将图像用作游戏的纹理,那么您需要 pvr 纹理的游戏工具包。在 iOS 中使用 PNG 文件,但使用不同的字节顺序,因此默认情况下 PNG 文件会被重新编码,因此如果您正在生成自己的 PNG 文件,如果您确保以正确的字节顺序写入,则可以关闭重新压缩。

并非所有 PNG 编码器都是等效的。有些人比其他人更聪明。因此,这取决于您对节省大小的关心程度。 Photoshop 很方便,但在创建小型 PNG 文件方面做得还不错。有许多开源工具可以做得更好。我根据情况选择。通常取决于 GUI 和批处理选项的好坏。当我压缩代码时,这取决于我使用的环境。如果我在 .NET 中,我会查看专用图像工具包的成本以及 StackOverflow 上有关如何使用内置图像类的信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-05
    • 2015-05-09
    • 2018-10-08
    • 1970-01-01
    • 2010-10-06
    • 1970-01-01
    • 2017-12-24
    • 2012-08-31
    相关资源
    最近更新 更多