繁体   English   中英

GD IMG_FILTER_COLORIZE之后,将背景应用于PNG透明图像

[英]Apply background to PNG transparent image after GD IMG_FILTER_COLORIZE

我有透明的png图像(单色),并且应用了colorise 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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM