PNG 的一个优点是完全 alpha 透明度,它允许您在网页设计中拥有平滑的边缘和阴影。主要缺点是它只支持无损压缩,这对于复杂的图像意味着非常大的文件大小。
另一方面,JPEG 为复杂图像提供了很好的可压缩性,但没有透明度。
最后,我看到 Flash 元素(此处为示例)具有高度压缩的图像,这些图像也具有平滑的边缘和阴影。我对 Flash 了解不多,也不知道这是如何实现的。这基本上是我希望能够做到的效果 - 具有透明和/或阴影边缘的大型复杂图像。
我的问题是:
具有透明度的有损压缩如何在 Flash 中工作?
这里是否使用了 Flash 特定的分层技巧?阴影是否像我对 PNG 所做的那样生成或光栅化到图像中。
是否有任何 SWF 或 SWF 生成脚本可以用有损压缩版本替换 PNG 图像?
我正在考虑逐步增强以提高某些设计元素的加载速度。如果这不存在,写它是否可行?
是否有任何格式允许透明的有损压缩
我很难找到这方面的具体信息。DjVu 可能是候选人?我们是否应该推动浏览器制造商支持另一种格式?
这个问题还有其他解决方案吗?
在 Flash 中做所有事情或接受巨大的文件大小是当前的选择。其他一些可能性:
- SVG 和画布可能能够应用边缘,但 IE 不支持。
- 您可以沿扫描线切割 PNG 并使用 JPEG 压缩它们,将边缘保留为 PNG。这在源代码上会很讨厌,但它适用于所有浏览器。听起来像一个有趣的项目,我会在早上写。:)
- 您可以编写一个有损图像过滤器,它可以降低 PNG 算法扫描线的颜色复杂性,以提高 PNG 格式的压缩率。我只知道它必须存在,但我找不到它。有人知道吗?
谢谢你的帮助!