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.
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");
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');
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:
Zurück zur Übersicht