지난 몇 시간 동안 JPG 배경 위에 투명한 배경을 가진 PNG 로고를 얻으려고했습니다. 몇 가지 방법과 여러 전역 변수를 시도했지만 원하는 결과를 얻을 수없는 것 같습니다.Imagick을 사용하여 JPG의 오버레이 PNG
"첫 시도"
$overlay = new Imagick('overlay.png');
$image = new Imagick('background.jpg');
$image->compositeImage($overlay, Imagick::COMPOSITE_DEFAULT, 10, 10);
$image->writeImage('background.jpg'); //replace original background
$overlay->destroy();
$image->destroy();
당신이 볼 수 있듯이, 재규어 로고가 모두 검은 색이다.
"두 번째 시도"
$overlay = new Imagick('overlay.png');
$image = new Imagick('background.jpg');
$image->setImageColorspace($overlay->getImageColorspace());
$image->compositeImage($overlay, Imagick::COMPOSITE_DEFAULT, 10, 10);
$image->writeImage('background.jpg'); //replace original background
$overlay->destroy();
$image->destroy();
가해야처럼 재규어 로고가 보이는이 하나 있지만, 배경은 모두 지금 엉망이다.
내가 Imagick::setImageMatte으로 노력하고 overlay to a white background을 추가하려고하고 아직도 제대로 이미지가 표시되지 않습니다 (나는 투명한 배경을 가질 필요가 않습니다 생각). 위의 2 개본에서 다른 많은 변형을 시도했지만 PNG를 완전히 또는 부분적으로 검정색으로 만듭니다.
무엇이 잘못되었거나 잘못 되었습니까? 누구든지 올바른 방향으로 찔러 주실 수 있습니까? 이 작업은 PHP에서 수행해야합니다.
대단히 감사합니다!