我使用一些代码:
$colors = array ();
$colors['test'] = imagecolorallocate($img, 0 ,1 ,2);
....
当我更换图片时,它可以正常工作
但之后,imagecolorallocate
和imagecolorallocatealpha
会返回false
$img
是正确的图片,比如 imagepng
可以正常输出
如何让 imagecolorallocate
正常工作?
对该函数的文档进行评论:
如果您遇到它无法分配所需颜色的情况,可能是由于图像颜色分配表。GIF和8位PNG图像非常容易出现这种情况。
如果您使用GIF和PNG,请尝试从表中删除一个颜色,这样应该可以重新分配另一个颜色。
如果源图像为索引图像(8位或更少),请确保有足够的空间来添加其他颜色。例如,8位图像可能没有使用调色板中的所有256种颜色,在这种情况下,该函数应该成功执行,否则将失败。
我查看了您的图像,实际上它是一个使用了所有256种颜色的8位PNG图像。尝试将其转换为真彩色图像(通过Photoshop或通过复制图像到使用“imagecreatetruecolor()”创建的GD图像),进行所有编辑,然后保存为GIF。
===
)检查false
? - Jonimagecolorallocate
失败?是8位图像吗? - Salman A