2017-12-30 45 views
0

Ich möchte eine Farbschicht über ein Bild in PHP mit gd hinzufügen.PHP GD - Hinzufügen einer Farbschicht über ein Bild

Dies ist das Bild: Image

ich dies mit dieser Farbe zu überlagern möge: # ABD0D2

Ich machte ein schnelles Bild, wie es am Ende aussehen soll. Beachten Sie, dass das Bild immer noch transparent enter image description here

Bisher sollte ich habe diesen Code:

$img = imagecreatefrompng('image.png'); 

imagesavealpha($img, true); 
imagefill($img, 0, 0, imagecolorallocatealpha($img, 0, 0, 0, 127)); 

// make overlay with new color??? 

imagepng($img, 'new.png'); 
imagedestroy($img); 

Antwort

0

Sie können ein neues Bild erstellen, mit Ihrer Zielfarbe gefüllt, und dann verschmelzen die beiden:

$img = imagecreatefrompng('image.png'); 
$w = imagesx($img); 
$h = imagesy($img); 
imagesavealpha($img, true); 

$img2 = imagecreatetruecolor($w, $h); 
imagefill($img2, 0, 0, imagecolorallocatealpha($img, 0xAB, 0xD0, 0xD2, 64)); 

imagecopy($img, $img2, 0, 0, 0, 0, $w, $h); 

imagepng($img, 'new.png'); 
imagedestroy($img); 
imagedestroy($img2); 

Ergebnis:

enter image description here

Es ist mir nicht ganz klar, wie Sie die Transparenz erhalten wollen (da Ihr erwartetes Ergebnisbild nicht transparent ist), also habe ich im obigen Code die 'Maskenfarbe' auf 50% Opazität gesetzt.

+0

@Tafelglotzer Eine Antwort darauf? – timclutton