JPEG的透明度

时间:2011-08-30 18:21:46

标签: png jpeg transparency

JPEG的尺寸小于PNG。所以,我认为如果我可以将JPEG文件中的特定区域透明,使用一些代码,也许我可以节省一些字节。

所以有人知道如何使用PHP或JavaScript实现这一目标吗?

6 个答案:

答案 0 :(得分:7)

没有。你不能这样做。 JPG不支持Alpha通道,也无法将某些颜色指定为透明(GIF风格)。

答案 1 :(得分:4)

这有几个问题,所有这些都与JPEG有关,是一种有损压缩格式。 JPEG格式针对自然图像进行了优化,锐利边缘将变得模糊。如果您希望特定像素的值应为#d67fff,则无法保证在颜色转换,FDCT,量化,IDCT和颜色转换后,像素仍具有该值。这个像素值很可能会出现在你不想要的区域。

答案 2 :(得分:4)

有一种方法,但有点hackish: http://jim.studt.net/jpeg-alpha/

答案 3 :(得分:2)

没有。 JPEG不支持透明度,任何时候都不可能这样做 不久。 http://www.faqs.org/faqs/jpeg-faq/part1/section-12.html

答案 4 :(得分:1)

您无法做到这一点,客户端呈现图像并且不知道您希望它将该颜色视为透明(加上jpeg上的各种压缩方法无论如何都不适用于透明胶片)。

我相信你可以使用8位自定义托盘png,应该为你节省大量空间。否则,24位PNG是您唯一的高色选项。

答案 5 :(得分:0)

您可以将图像转换为 SVG,其中包含 JPEG 格式的颜色信息和灰度蒙版格式的 alpha 通道。这是我写的一个工具https://github.com/igrmk/transpeg