je l'image suivante: http://i.stack.imgur.com/mM8cY.pngsuperposition de couleur sur l'image PNG blanc avec transparence
Ce que je voudrais faire est de créer un effet « Color Overlay » comme dans Photoshop. J'ai besoin d'une sorte de code qui me permette de changer chaque pixel blanc aux valeurs spécifiées dans les nombres RVB allant de 0 à 255. J'ai entendu parler de la classe ImageMagick, mais je ne l'ai pas trouvée nulle part, et je n'ai aucune idée de comment le faire même avec cette classe. J'essaye actuellement avec imagefilter
, mais cela ne fonctionne pas avec des images blanches. Voici mon code actuel:
<?php
$match = array();
if (isset($_GET['c']) && preg_match('/^#?(?:[A-Fa-f0-9]{2}){3}$/',$_GET['c'],$match)){
$match = str_split($match[0],2);
foreach ($match as $k=>$m){ $match[$k] = intval($match[$k],16); }
$img = imageCreateFromPng('splat.png');
$background = imagecolorallocate($img, 0, 0, 0);
imagecolortransparent($img, $background);
imagealphablending($img, false);
imagesavealpha($img, true);
//Transformation code
imagefilter($img, IMG_FILTER_COLORIZE, $match[0], $match[1], $match[2]);
header('Content-type: image/png');
imagePng($img);
exit;
}
?>