【问题标题】:Fatal error: Paletter image not supported by webp致命错误:webp 不支持调色板图像
【发布时间】:2016-09-02 12:36:02
【问题描述】:

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

【问题讨论】:

标签: php


【解决方案1】:

在创建.webp 格式的图像之前,将文件转换为 RGB

$img = imagecreatefrompng('l2.png'); 
imagepalettetotruecolor($img);

同样在你的情况下,你可以保存 png 文件的 alpha 通道

$img = imagecreatefrompng('l2.png'); 
imagepalettetotruecolor($img);
imagealphablending($img, true);
imagesavealpha($img, true);

【讨论】:

    【解决方案2】:

    您保存了错误的图像。它应该是 $im 而不是 $img。

    【讨论】:

      【解决方案3】:

      我遇到了类似的问题,我已经通过添加以下代码来解决它。

      imagepalettetotruecolor($this->_imageHandler);
      

      $this->_imageHandler 是“gd”,因为我使用的是 PHP 的 GD2 图像库。

      函数imagepalettetotruecolor 将基于调色板的图像转换为真彩色,如果转换完成,或者如果源图像已经是真彩色图像,则返回 TRUE,否则返回 FALSE退货了。

      我的新代码如下所示:

      imagepalettetotruecolor($this->_imageHandler);
      $res = imagewebp($this->_imageHandler, $fileName);
      

      【讨论】:

        【解决方案4】:

        可能是图片异常、损坏或编辑或直接修改扩展名造成的。可以用PS打开图片再次保存,不会报错。事实证明是因为被非法编辑

        【讨论】:

        • 对不起,这不是答案。
        • 这更多是评论或猜测,而不是答案。很遗憾,您还没有足够的声誉来发表评论。
        猜你喜欢
        • 2021-11-21
        • 2019-04-11
        • 2015-07-23
        • 2022-01-03
        • 2015-12-24
        • 1970-01-01
        • 2011-08-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多