我试图以编程方式减少(有损)的PNG和GIF文件的文件大小。作为这一部分,我需要减少图像中的颜色数量。我不想将所有的图像缩减为单一的颜色值,所以我正在做的是;获取图像中唯一颜色的数量,然后;将此数字除以2以减少一半的颜色数量。需要帮助了解ImageMagick/Graphicsmagick -colors选项
问题是这是行不通的。使用ImageMagic它太慢了,不会减小文件的大小,除非图像有几百种独特的颜色。无论原始图像中有多少种颜色,使用GraphicsMagick总是会生成255以下的唯一颜色值。 GraphicsMagick的另一个问题是如果图像中有任何透明像素,它会用透明替换丢失的颜色。
任何帮助将不胜感激, 谢谢。
嗨,谢谢你的回复,这就是我的想法,但ImageMagick让你指定一个无限的颜色值出于某种原因。我需要图像保持相同的格式,JPEG也会导致图像失去透明度。你知道我有什么转基因透明度问题吗?再次感谢您的时间。 – toc777 2010-11-18 21:05:32
它只在GIF吗?在GIF中,有一个调色板条目被指定为透明色 - 也许它们的色彩匹配意外地将丢失的颜色映射到它。这可能会发生,因为实际上有一种颜色被指定为透明颜色(它不是0 alpha的颜色)。它有点像一个bug。如果您使用的是Windows,请尝试使用我们的免费映像SDK for .NET http://atalasoft.com/photofree。 – 2010-11-18 21:25:04
不,它只发生在PNG文件中。我正在使用Linux,并且我无法使用.NET进行此项目。谢谢你的帮助。 – toc777 2010-11-19 10:10:24