La bibliothèque GD prend en charge la transparence alpha donc cela ne devrait pas être un problème. Voici comment je l'ai mis ensemble - vous devrez peut-être modifier cela, mais l'essentiel de celui-ci devrait être là. Les nombres de rouge/vert/bleu sont compris entre 0 et 255. Alpha est 0-127 (127 étant complètement transparent). Ce code doit appliquer une teinte rouge de 50% à l'image "original.png" et être affiché comme "output.png".
<?php
$red = 255;
$green = 0;
$blue = 0;
$alpha = 63
$src_img = imagecreatefrompng("original.png");
$tint_img = imagecreatetruecolor(imagesx($im_src), imagesy($im_src));
$tintcolor = imagecolorallocate($tint_img, $red, $green, $blue, $alpha);
imagefill($tint_img, 0, 0, $tintcolor);
imagecopymerge($tint_img, $src_img, 0, 0, 0, 0, imagesx($im_src), imagesy($img_src), 100);
imagepng("output.png");
?>
Cela a fonctionné comme un charme, merci. – Casey
+1 pour une réponse épique simple! – Bojangles