【问题标题】:ImageTrueColorToPalette losing colorsImageTrueColorToPalette 失去颜色
【发布时间】:2015-06-06 12:30:59
【问题描述】:
如果图像中不同颜色的数量小于或等于 256,我有一个 PHP 脚本可以将真彩色图像转换为调色板图像。
在我的测试用例中,我有一张包含 79 种颜色的图像。在没有抖动且 $ncolors 参数设置为 79 的情况下在其上运行 ImageTrueColorToPalette 后,我的图像中只有 15 种颜色。我什至尝试在将其转换为调色板后对其运行 ImageColorMatch,但最终还是只有 15 种颜色。
在 PHP 中使用 GD,如何在不丢失所有颜色的情况下将我的真彩色图像转换为调色板图像?
【问题讨论】:
标签:
php
image-processing
gd
【解决方案1】:
看来我可以通过使用ImageCreate 创建调色板图像,然后将真彩色图像复制到该图像,将真彩色图像转换为调色板图像。这比ImageTrueColorToPalette 产生更好的结果。
为什么ImageTrueColorToPalette 给了我一个看起来很糟糕的图像,我不太确定,但这似乎是一个足够的解决方法。
$palette = ImageCreate($width, $height);
ImageCopy($palette, $truecolor, 0, 0, 0, 0, $width, $height);