PHPでPNGをWebPに変換しようとしたら警告「imagewebp(): Palette image not supported by webp」が出て変換できない

gdで読み込んだPNGからWebPへの出力処理がこけていたのでログを見てみたら「PHP Warning: imagewebp(): Palette image not supported by webp」となっていました。

環境

OSCentOS7
PHP7.2.13
GD library Version2.2.5

問題のコード

処理は簡略化しています。

原因

gdライブラリのソースコードを見る限りWebPへの変換では変換元の画像がTrueColorである必要があるみたいですね。

https://github.com/libgd/libgd/blob/master/src/gd_webp.c

修正したコード

TrueColorで画像を作成し、それに上書きすることで解消できました。