JPEG的尺寸小于PNG。所以,我认为如果我可以将JPEG文件中的特定区域透明,使用一些代码,也许我可以节省一些字节。
所以有人知道如何使用PHP或JavaScript实现这一目标吗?
答案 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