Mit Imagemagick eine Maske über ein Bild legen und daraus eine Transparenz generieren


September 10, 2014 at 12:45
PHP

Es geht ungefähr darum: Ich habe ein Bild mit den Abmessungen 500x500. Aus diesem soll nun ein 200x200 Bild generiert werden, wo das ursprüngliche Bild kreisrund ausgeschnitten ist und alles außerhalb des Kreises transparent ist. Das ist mit Imagemagick glücklicherweise sehr einfach:
//the base 500x500 image
$baseImage = 'img/base.jpg';

//the mask image, where the circle is transparent and everything outsite is black
$maskImage = 'img/kreis.png';

//step1: resize the base image to 200x200
$minFile = $path.'tmp/'.uniqid("tmp_").'.png';
$cmd = sprintf('convert %s -resize 200x200^ %s', $baseImage, $baseImage);
exec($cmd);

//step2: create a new temporary image in /tmp/ folder
$temp = 'tmp/' . uniqid("tmp_") . '.png' ;
touch( $temp );

//step3: place the mask over it
$cmd = sprintf( "convert %s %s -alpha off -compose CopyOpacity -composite %s", $baseImage, $maskImage, $temp );
exec( $cmd );
Und das wars.

Tags: imagemagick


Hinterlasse einen Kommentar:
Suche