你怎么能从png24告诉png8

时间:2008-11-14 14:50:37

标签: graphics png photoshop png-24 png-8

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

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

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

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

我正在使用OS X,像Adobe桥这样的文件浏览器不会显示此信息,也无法在命令行或查找程序中找到信息。

帮助!

7 个答案:

答案 0 :(得分:7)

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

% file foo.png 
foo.png: PNG image data, 1514 x 1514, 8-bit grayscale, non-interlaced

答案 1 :(得分: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,但我正在探索其他选择。

答案 2 :(得分:2)

要添加到Alnitak的答案,一旦找到要转换的所有PNG24,就可以使用pngquant批量处理它们:

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

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

答案 3 :(得分:1)

我想你可能会问错误的问题。 PNG8没有你在IE6中努力修复的真正的alpha。如果用PNG8替换PNG24,那么用GIF替换PNG24并不比这更好。

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

这是(我在脸颊上说这个舌头!)the right question

答案 4 :(得分:1)

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

我从来没有让IE6打破一个好的pngfix脚本。你有一个糟糕的pngfix脚本,或者IE6安装不好。

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

答案 5 :(得分:1)

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

let string              = "A great link : Google"
let range               = (string as NSString).rangeOfString("Google")
let attributedString    = NSMutableAttributedString(string: string)

attributedString.addAttribute(NSLinkAttributeName, value: NSURL("http://www.google.fr")!, range: range)
attributedString.addAttribute(NSUnderlineStyleAttributeName, value: NSNumber(int: 1), range: range)
attributedString.addAttribute(NSUnderlineColorAttributeName, value: UIColor.orangeColor(), range: range)


textView.attributedText = attributedString

答案 6 :(得分:0)

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