2012-01-26 4 views
3

그리고 대신 배경이 흰색이되기를 바랍니다. 나는 다른 질문을 한 번 보았고 그 답 중 아무 것도이 문제를 해결하지 못하는 것 같았다. 여기 Imagick 버전 2.3을 사용하고있어Imagick - PNG를 JPG로 변환하면 투명한 배경이 검은 색이됩니다.

내가 가진 무엇 : 나는

setBackgroundColor, setImageBackgroundColor, composite over a white image 

을 시도하고이 중 어느 것도 제대로 작동하지

$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); 

. 어떤 제안?

+0

이 안나요 http://stackoverflow.com/questions/6610739/php-imagick-을 convert-png-to-jpg가 도움이됩니까? – entropid

+0

jpgs는 투명성을 지원하지 않습니다. –

+0

와우. 명확히하기 위해 나는 흰 바탕을 원한다. – chrisjbaik

답변

0

jpg 확장자는 백그라운드에서 투명도를 지원하지 않으므로 png를 사용해야합니다. 다른 사이트에 대해 당신이 예를 들어 쓰기 배경으로 한 IMG가있는 경우이 코드로 투명이 색상을 설정할 수 있습니다 :

$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

투명도를 사용하면 모든 색상을 배경으로 배치 할 수 있습니다. 내 예제에서 코드는 다른 색상 (이 경우 투명도 당)마다 흰색을 변경하려했으나 백그라운드에서 어떤 색상을 사용 했습니까? 모든 이미지가 동일하거나 다른가? –

관련 문제