PHP如何用黑色背景保存png文件而不形成额外的颜色?

时间:2018-01-16 17:06:06

标签: php png gd

在base64中有一张带有彩色方块的图片,已解码:$pngString = base64_decode($pngBase64); 保存后,在正方形附近出现带有其他颜色的像素,不需要它们。 试过2个变种: 1.在此选项中,如果设置白色背景 - 一切正常,也有黑色,但在边框上显示中间色(例如,如果矩形为红色,则有深紫红色像素)。

    $img = imagecreatefromstring($pngString);
    $black = imagecolorallocate($img, 0, 0, 0);
    imagefill($img, 0, 0, $black);
    imagepng($img, $outputFilePath);
    imagedestroy($img);
  1. 在新图片上叠加:

    $img = imagecreatefromstring($pngString);
    $w = imagesx($img);
    $h = imagesy($img);
    $img2 = imagecreatetruecolor($w, $h);
    imageantialias($img2, false);
    imagefilledrectangle($img2, 0, 0, $w, $h, imagecolorallocate($img2, 0, 0, 0));
    imagecopyresampled($img2, $img, 0, 0, 0, 0, $w, $h, $w, $h);
    imagepng($img2, $outputFilePath)        
    

0 个答案:

没有答案