次の画像があります: http://i.stack.imgur.com/mM8cY.png
私がやりたいのは、Photoshop のような「カラー オーバーレイ」効果を作成することです。各白ピクセルを 0 ~ 255 の範囲の RGB 数値で指定された値に変更できるコードが必要です。ImageMagick クラスのことは聞いたことがありますが、どこにも見つからず、そのクラスでもどうすればよいかわかりません。現在 で試してimagefilter
いますが、白い画像では機能しません。これが私の現在のコードです:
<?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;
}
?>