2012-01-26 73 views
3

そして、私は背景が白くなるようにします。私は他の質問を見てきましたが、答えのどれもこの問題を本当に解決してくれなかったようです。Imagick - PNGをJPGに変換すると、透明な背景が黒くなります。

私はのImagickバージョン2.3を使用して、ここで私が持っているものだよ:

$this->_object = new Imagick(); 
$this->_object->setResolution(300, 300); 
$this->_object->readImage($fileRead); 
$this->_object->setImageMatte(true); 
$this->_object->setImageMatteColor("white"); 
$this->_object->setImageAlphaChannel(Imagick::ALPHACHANNEL_OPAQUE); 

私は

setBackgroundColor, setImageBackgroundColor, composite over a white image 

を試してみたそして、これらのどれも動作するようには思えません。助言がありますか?

+0

これはありませんでしたhttp://stackoverflow.com/questions/6610739/php-imagick- convert-png-to-jpgはあなたを助けますか? – entropid

+0

jpgsは、あなたが探しているものなら、透明性をサポートしていません。 –

+0

おっと。明確にするために、私は白い背景が欲しい。 – chrisjbaik

答えて

0

jpg拡張子は背景の透明度をサポートしていないため、pngを使用する必要があります。他のサイトについては、たとえば、背景を書き込んだ1つの画像がある場合は、このコードでこの色を透明に設定することができます。

$route = "MiOldJpgWriteBackground.jpg"; 
    $salida = 'MiNewTransparentFile.png'; 
    exec("convert $route $salida"); 
    exec("convert $salida -bordercolor white -border 1x1 \ 
     -alpha set -channel RGBA -fuzz 10% \ 
     -fill none -floodfill +0+0 white \ 
     -shave 1x1 $salida"); 
    exec("rm $route"); 
+0

申し訳ありません - 私は透明な背景を望んでいません、私はJPG上に白いものを(ちょうど明確にするために)したいです。 – chrisjbaik

+0

透明で、すべての色を背景にすることができます。私の例では、コードは他の色ごとに白を変えようとしました(この場合は透明度ごとに)、背景色はどのような色ですか?すべての画像が同じか違うのですか? –

関連する問題