我使用以下代码保存png图像webp
格式,但有时会显示
致命错误:webp不支持调色板图像
所以,请给我建议
$im = imagecreatetruecolor(120, 20);
$text_color = imagecolorallocate($im, 128, 128, 128);
$img = imagecreatefrompng('l2.png');
imagestring($img,5, 5,5,'abc',$text_color);
// Save the image
imagewebp($img, 'images/l2.webp');
// Free up memory
imagedestroy($img);
答案 0 :(得分:3)
在以.webp
格式创建图像之前,请将文件转换为RGB
$img = imagecreatefrompng('l2.png');
imagepalettetotruecolor($img);
同样在您的情况下,您可以保存png文件的alpha通道
$img = imagecreatefrompng('l2.png');
imagepalettetotruecolor($img);
imagealphablending($img, true);
imagesavealpha($img, true);
答案 1 :(得分:1)
您正在保存错误的图像。它应该是$ im而不是$ img。
答案 2 :(得分:0)
我遇到了类似的问题,我通过添加以下代码修复了它。
imagepalettetotruecolor($this->_imageHandler);
$this->_imageHandler 是 'gd',因为我使用的是 PHP 的 GD2 图像库。
函数 imagepalettetotruecolor
将基于调色板的图像转换为真彩色,如果转换完成,或者源图像已经是真彩色图像,则返回 TRUE,否则返回 FALSE 返回。
我的新代码如下所示:
imagepalettetotruecolor($this->_imageHandler);
$res = imagewebp($this->_imageHandler, $fileName);
答案 3 :(得分:-1)
可能是图片异常,损坏或编辑或直接修改扩展名造成的。您可以使用PS打开图片再次保存,这不会是一个错误。事实证明,这是由于非法编辑