JPEG: 尺寸与压缩比的关系

3

这里有一个非常简单但具体的问题:

我不太熟悉用于压缩图像的JPEG标准。当X维度(宽度)非常大而Y维度(高度)非常小,反之亦然,或者两者几乎相等时,它是否会创建更好的图像(即在类似质量下较小的文件大小)?

我需要了解的实际用途是CSS精灵。如果一个网站由数百个CSS精灵组成,最好将精灵文件的大小最小化,以帮助使用较慢的互联网用户,并减少服务器负载。如果JPEG标准在单个水平线上运作得非常好,但垂直移动需要更多的复杂性,则100个16x16 CSS精灵图像的图像应该是1600x16。

另一方面,如果JPEG标准在水平方向上具有很多复杂性,但在行与行之间轻松移动,那么您可以通过将图像设置为16x1600来制作更小的文件或具有更高的质量。

如果最佳压缩发生在图像是完美的正方形时,则应将最终图像设置为160x160。

2个回答

4
MPEG/JPEG阻塞机制会(稍微)偏向于在每个方向上都是压缩块大小的确切倍数的图像尺寸。然而,除此之外,该格式不关心块是垂直还是水平的。
因此,对于您的问题,直接回答是“正方形和其他形状一样好”,只要您的精灵可以轻松地分成JPEG压缩块(只需确保它们的宽度为8、16、24或32个像素即可)。
然而,我认为对于“大多数”精灵来说,如果您的初始主图像是GIF而不是JPG,甚至可以使用减少的调色板,那么您将拥有更小的图像尺寸和更清晰的分辨率。考虑到为什么您需要为“数百个精灵”使用JPG。

几乎和我一模一样,只是比我早了一分钟: - jamesbtate
实际上,我之所以想到JPEG是因为它比GIF具有更好的色彩深度。当我需要图片时,我通常倾向于使用JPEG,而当我需要动画时则使用GIF。只有在需要半透明效果时,我才会选择PNG。否则,PNG文件太大了,不太实用。但对于精灵图来说,我想你是对的,GIF应该足够了。你知道GIF是更喜欢垂直还是水平的吗?还是无所谓? - stevendesu
GIF格式不会关心这些。您可以使用任何最方便的格式创建图像。我不认为高度只有1个sprite而宽度为1000个sprites的图像会很容易处理,因此我敢说“正方形与其他任何形状一样好”。 - Flipster

4
看起来JPEG的压缩比并不受图像尺寸的影响。但是,你的尺寸应该是8的倍数,而在你所有的示例中,尺寸都是16的倍数,所以这方面应该没问题。
如果我没记错的话,PNG(无损压缩)在水平拉伸时比垂直拉伸更好地运作。为什么你要使用JPEG制作你的精灵呢?如果它们具有有限的颜色集(如果你有16x16的精灵,动画或非动画,这很可能),那么PNG实际上可能会产生更好的文件大小和完美的图像质量。 http://en.wikipedia.org/wiki/JPEG#JPEG_codec_example

哈哈,我会给你一个点赞,因为你说得非常准确! :-) - Flipster

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接