我使用一些代码:
$colors = array ();
$colors['test'] = imagecolorallocate($img, 0 ,1 ,2);
....
直到我将图片更改为其他
之后,imagecolorallocate
和imagecolorallocatealpha
返回false
$img
是正确的图像,即imagepng
正确打印
如何使imagecolorallocate
工作?
注释这个函数的文档:
如果你在这种情况下没有分配你想要的颜色可能是因为你图片的颜色分配表。GIF和8位PNG图片很容易受此影响。
如果你使用GIF和PNG尝试从桌上掉下一种颜色,应该让你分配另一个。
如果源图像在索引图像中(8位或更少),则确保有额外颜色的空间。例如,一个8位的图像可能不会使用调色板中的所有256种颜色,在这种情况下,函数应该成功,否则它不会。
<标题>编辑我看了你的图像,它实际上是一个8位的PNG图像,使用了所有256种颜色。尝试将其转换为真彩色图像(通过photoshop或通过将图像复制到通过imagecreatetruecolor()
创建的GD图像);完成所有的编辑,然后保存为GIF。