PHP/Imagmagick abgerundeter Button

Mit PHP und ImageMagik einen abgerundeten Button mit Farbverlauf erzeugen.

Der Button soll über eine Farbverlauf verfügen, die Ecken sollen abgerundet sein, der Hintergrund transparent.

button-roundedbutton-rounded

Schritt 1: Gradient erzeugen

Im ersten Schritt wird ein Image mit einem Farbverlauf und den entsprechenden Abmessungen erzeugt:

$width = 200;
$height = 30;
$colortop = '#ffa127';
$colorbottom = '#f47900';
$colorcontour = '#ffffff';

$gradient = new \Imagick();
$gradient->newPseudoImage($width, $height, "gradient:$colortop-$colorbottom");

Schritt 2: Rundungen

Im nächsten Schritt wird ein abgerundetes Rechteck gezeichnet:

$draw = new \ImagickDraw();
$draw->roundRectangle(0, 0, $width-1, $height-1, 4, 4);

 Das Basisimage wird nun erzeugt und das abgerundete Rechteck hineingezeichnet, das Basisimage wird transparent gesetzt:

$button = new \Imagick();
$button->newPseudoImage($width, $height, "xc:none");
$button->drawImage($draw);
$button->setImageFormat('png');

Schritt 3: Gradient über den Button legen

 Im letzten Schritt wird der Gradient über den Button gelegt und anschließend gespeichert:

$button->compositeImage($gradient, \Imagick::COMPOSITE_SRCIN, 0, 0);

file_put_contents('button.png', (string)$button);

Das Endergebnis sieht dann so aus:

button-complete

Zurück zur Übersicht