PHP减少所有图像类型的质量

Ron*_*Ron 5 php compression image image-compression

我正在寻找一个可以降低所有图像类型质量的库(PNG,GIF和JPEG).
我知道我可以减少JPEG使用imagejpeg()
我也知道我可以减少使用PNG imagepng()虽然这不够强大.

我需要能够在不删除alpha的情况下将PNG 24转换为PNG8的东西.

无法使用ImageMagick,因为我无法在我的服务器上安装任何东西.

编辑:
我还需要一些可以从32位转换为8位的东西(我很确定它与32位相同)

这里找到了灵魂

谢谢

har*_*077 5

要将任何PNG图像转换为8位PNG,请使用此功能,我刚创建

function convertPNGto8bitPNG()

  function convertPNGto8bitPNG($sourcePath, $destPath) {
    $srcimage = imagecreatefrompng($sourcePath);
    list($width, $height) = getimagesize($sourcePath);
    $img = imagecreatetruecolor($width, $height);
    $bga = imagecolorallocatealpha($img, 0, 0, 0, 127);
    imagecolortransparent($img, $bga);
    imagefill($img, 0, 0, $bga);
    imagecopy($img, $srcimage, 0, 0, 0, 0, $width, $height);
    imagetruecolortopalette($img, false, 255);
    imagesavealpha($img, true);
    imagepng($img, $destPath);
    imagedestroy($img);
    }
Run Code Online (Sandbox Code Playgroud)

参数

$ sourcePath - 源PNG文件的路径$ destPath - 目标PNG文件的路径用法

convertPNGto8bitPNG('pfc.png', 'pfc8bit.png');
Run Code Online (Sandbox Code Playgroud)