将背景应用到 GD 后的 PNG 透明图像 IMG_FILTER_COLORIZE
Apply background to PNG transparent image after GD IMG_FILTER_COLORIZE
我有透明的 png 图像(它是单色的)并且我应用了着色 php GD 滤镜。所以现在它是彩色的,但我无法应用白色背景来消除透明度。
list($r,$g,$b) = array_map('hexdec',str_split($ColourPrimary,2));
$r = $r - 52;
$g = $g - 52;
$b = $b - 52;
imagesavealpha($im, true);
imagefilter($im, IMG_FILTER_COLORIZE, $r, $g, $b);
$bw = imagesx($im);
$bh = imagesy($im);
$background = imagecreatetruecolor($bw,$bh);
$bkwhite = imagecolorallocate($background, 255, 255, 255);
imagefill($background,0,0,$bkwhite);
imagecopy($background, $im, 0, 0, 0, 0, $bw, $bh);
睡了一夜好觉后,我意识到我在倒退。我先应用背景并在上面复制图像。
list($r,$g,$b) = array_map('hexdec',str_split($ColourPrimary,2));
$r = $r - 52;
$g = $g - 52;
$b = $b - 52;
$imfore = imagecreatefrompng(FILELOCATION);
imagesavealpha($imfore, true);
imagefilter($imfore, IMG_FILTER_COLORIZE, $r, $g, $b);
$bw = imagesx($imfore);
$bh = imagesy($imfore);
$im = imagecreatetruecolor($bw,$bh);
$bkwhite = imagecolorallocate($im, 255, 255, 255);
imagefill($im,0,0,$bkwhite);
imagecopy($im, $imfore, 0, 0, 0, 0,$bw,$bh);
我有透明的 png 图像(它是单色的)并且我应用了着色 php GD 滤镜。所以现在它是彩色的,但我无法应用白色背景来消除透明度。
list($r,$g,$b) = array_map('hexdec',str_split($ColourPrimary,2));
$r = $r - 52;
$g = $g - 52;
$b = $b - 52;
imagesavealpha($im, true);
imagefilter($im, IMG_FILTER_COLORIZE, $r, $g, $b);
$bw = imagesx($im);
$bh = imagesy($im);
$background = imagecreatetruecolor($bw,$bh);
$bkwhite = imagecolorallocate($background, 255, 255, 255);
imagefill($background,0,0,$bkwhite);
imagecopy($background, $im, 0, 0, 0, 0, $bw, $bh);
睡了一夜好觉后,我意识到我在倒退。我先应用背景并在上面复制图像。
list($r,$g,$b) = array_map('hexdec',str_split($ColourPrimary,2));
$r = $r - 52;
$g = $g - 52;
$b = $b - 52;
$imfore = imagecreatefrompng(FILELOCATION);
imagesavealpha($imfore, true);
imagefilter($imfore, IMG_FILTER_COLORIZE, $r, $g, $b);
$bw = imagesx($imfore);
$bh = imagesy($imfore);
$im = imagecreatetruecolor($bw,$bh);
$bkwhite = imagecolorallocate($im, 255, 255, 255);
imagefill($im,0,0,$bkwhite);
imagecopy($im, $imfore, 0, 0, 0, 0,$bw,$bh);