Ich habe die letzten paar Stunden versucht, ein PNG-Logo mit einem transparenten Hintergrund oben auf einem JPG-Hintergrund zu bekommen. Ich habe mehrere Wege und mit mehreren Globals auch versucht, aber ich bin nicht in der Lage, das gewünschte Ergebnis zu bekommen.Overlay PNG auf JPG mit Imagick
"erster Versuch":
$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();
Wie Sie sehen können, das Jaguar-Logo ist alles schwarz.
"Second Attempt"
$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();
Dieser Jaguar Logo, um es aussieht sollte, aber der Hintergrund ist jetzt alles durcheinander.
ich versucht habe, mit Imagick::setImageMatte und versuchte, die overlay to a white background hinzufügen (dachte ich einen transparenten Hintergrund haben muss) und immer noch wird es nicht das Bild korrekt angezeigt werden. Ich habe viele andere Variationen der 2 obigen Schnipsel ausprobiert, aber sie scheinen alle das PNG vollständig oder teilweise schwarz zu machen.
Was vermisse ich oder mache ich falsch? Kann mich jemand in die richtige Richtung stoßen? Bitte beachten Sie, dass dies in PHP erfolgen muss.
Vielen Dank!