背景が透明な png 画像があり、それを背景が白い jpg 画像に変換したいと考えています。
コードは基本的に次のとおりです。
$image = new Imagick('transparent.png');
$image->writeImage('opaque.jpg');
しかし、それは黒い背景 jpg を作成します。透明を白に変換する方法を見つけようとして、これまでで最悪のドキュメントに苦労してきましたが、役に立ちませんでした。
編集:まあ、私はMarc Bのアイデアを試してみましたが、うまくいきました.
$image = new Imagick('transparent.png');
$white = new Imagick();
$white->newImage($image->getImageWidth(), $image->getImageHeight(), "white");
$white->compositeimage($image, Imagick::COMPOSITE_OVER, 0, 0);
$white->writeImage('opaque.jpg');
$image->destroy();
$white->destroy();
問題は、スクリプトが常に segfault を引き起こすことです。