5

我正在一个使用大量 png24 文件的网站上工作,以提高透明度。

我需要用 png8 文件替换它们,因为 png24 的所有 png 修复样式 javascript 变通方法会导致 IE6 随机锁定。

请参阅此链接以了解 IE6 显示的症状 - http://blogs.cozi.com/tech/2008/03/transparent-pngs-can-deadlock-ie6.html

有谁知道一种简单的方法来定位现有的 png24 文件,用 png8s 替换它们?

我使用的是 OS X,像 Adob​​e Bridge 这样的文件浏览器没有显示这一点,我也无法在命令行或 finder 上找到信息。

帮助!

4

7 回答 7

7

OSX 上的file实用程序可以告诉您 PNG 文件中的颜色深度,例如:

% file foo.png 
foo.png: PNG image data, 1514 x 1514, 8-bit grayscale, non-interlaced
于 2008-11-14T15:13:05.613 回答
3

您实际上可以在 PNG-8 中获得 alpha 透明度,但它非常复杂。 http://www.sitepoint.com/blogs/2007/09/18/png8-the-clear-winner/ http://www.personal.psu.edu/drs18/blogs/davidstong/2007/09/png8_alpha_transparency_from_f。 html

它基本上为 IE6 创建了类似 GIF 的内容,并为更好的浏览器创建了具有 alpha 透明度的真实 PNG。这是一条更令人愉快的退化路径。现在,我认为您需要 Fireworks,但我正在探索其他选择。

于 2009-02-24T18:09:47.657 回答
2

要添加到 Alnitak 的答案,一旦找到要转换的所有 PNG24,您可以将它们全部批处理pngquant

pngquant -v -f --ext .png 256 *.png

这会将所有 PNG 文件就地转换为 PNG8,并覆盖它们。

于 2011-12-17T18:54:50.903 回答
1

我想你可能问错了问题。PNG8 没有您在 IE6 中努力修复的真正 alpha。如果您将 PNG24 替换为 PNG8,那么您不会比将它们替换为 GIF 更好。

也许你可以测试一个替代的替换/修复脚本——那里有一些非常糟糕的脚本,也许这就是问题所在?

这是(我说这个舌头在脸颊!)正确的问题

于 2008-11-14T16:13:47.080 回答
1

JoeBloggs 是对的,你问错了问题。

我从来没有用一个好的 pngfix 脚本让 IE6 崩溃。你要么有一个糟糕的 pngfix 脚本,要么是一个糟糕的 IE6 安装。

PNG8 会破坏你漂亮的透明胶片,让它看起来像你在使用 GIF。

于 2008-11-14T20:48:34.937 回答
1

pngcheck,一个命令行工具,可以转储你需要的信息。http://www.libpng.org/pub/png/apps/pngcheck.html

pngcheck.exe a.png
OK: a.png (1024x1024, 32-bit RGB+alpha, non-interlaced, 80.7%).

pngcheck.exe b.png
OK: b.png (1024x1024, 8-bit palette+trns, non-interlaced, 83.1%).
于 2015-07-16T07:19:10.213 回答
0

也许imagemagick可以帮助您将 png24 文件转换为 png8 文件。

于 2008-11-14T15:10:02.937 回答