Ich versuche ein Skript neu zu erstellen, das den ImageMagick-Befehl "convert" verwendet, um ein Bild zu erstellen. Aber ich möchte das gleiche in PHP mit Imagick (Version 6.6.2-10) machen.Imagick: komponieren mit Maske
Der Befehl lautet wie folgt:
convert A1.mpc A3.mpc A4.mpc -channel rgba -alpha on -virtual-pixel background -background none -define compose:args=312x26.6776 -compose displace -composite out.mpc
Ich fand heraus, dass die Parameter für die folgenden stehen:
convert {background} {overlay} [{mask}] [-compose {method}] -composite {result}
Die PHP Imagick gibt mir ein compose Methode, aber ohne Maske Parameter: http://www.php.net/manual/en/imagick.compositeimage.php
Ich fand another question und versucht dies (aber nicht das gleiche Bild):
// load images
$a1 = new Imagick('a1.png');
$a3 = new Imagick('a3.png');
$a4 = new Imagick('a4.png');
// mask the overlay
$a1->compositeImage($a4, Imagick::COMPOSITE_DSTIN, 0, 0, Imagick::CHANNEL_ALPHA);
// compose overlay to background
$a1->setImageVirtualPixelMethod(Imagick::VIRTUALPIXELMETHOD_BACKGROUND);
$a1->setImageBackgroundColor(new ImagickPixel('none'));
$a1->setOption('compose:args', '312x26.6776');
$a1->compositeImage($a3, Imagick::COMPOSITE_DISPLACE, 0, 0);
Also meine Frage ist: Ist das der richtige Weg, um ein Bild mit einer Maske zu komponieren? Oder was ist hier falsch?
Visualisierung zu helfen, was ich tun möchte, hier sind einige Eingabebilder:
Eingangsbild a1 (Hintergrund):
Eingangsbild a3 (Overlay):
Eingabebild a4 (Maske):
Was möchte ich das Ergebnis sein:
Was Code mein PHP erstellt:
Vielen Dank im Voraus! Michael
, warum Sie nicht die Flagge COMPOSITE_OVERLAY – artragis