Dies ist, wie ich es mit Imagemagick tun würde, und php:
// Canvas the same size as the final image
exec("convert -size 800x533 xc:white white.jpg");
// The mask
exec("convert -size 800x533 xc:none -draw \"fill black circle 400,265 400,50\" write_mask.png");
// Cut the whole out of the canvas
exec("composite -compose Dst_Out write_mask.png white.jpg -matte step.png");
// Put the canvas over the image and trim off excess white background
exec("convert IMG_5745.jpg step.png -composite -trim final.jpg");
Sie sollten den Prozess folgen können?
Temporäre Bilder später bereinigen - Ich neige dazu, die temporären Bilder im .miff-Format zu speichern und dann eine Schleife zu schreiben, um danach alle .miff-Bilder zu löschen. Alternativ lassen Sie sie einfach und wenn Sie den gleichen Namen für die temporäre Bilder verwenden, werden sie jedes Mal überschrieben, wenn der Code ausgeführt wird.
Wie würden Sie das mit zwei Bildern machen? Anstelle eines Kreises mit einem transparenten Bild –
Diese Lösung funktioniert nicht für ein PNG-Bild mit Alphakanal – Dmitry