致命错误:webp不支持调色板图像

时间:2016-09-02 12:36:02

标签: php

我使用以下代码保存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); 

4 个答案:

答案 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打开图片再次保存,这不会是一个错误。事实证明,这是由于非法编辑