0

我有一个简单的函数,它从 url 地址 ($filein) 下载图像,将其存储在本地服务器上,然后根据 imagepng 函数的质量级别应用压缩,如下所示:

function create_img_memoire($REF,$filein)
{
    //get file and store it
    $fileout = '/home/images/public_html/memoire/'.$REF.'.png'; 
    file_put_contents($fileout, file_get_contents($filein));

    //compress it
    $im = imagecreatefrompng($fileout);
    imagepng($im, $fileout, 9);
}

文件已下载,但压缩不起作用。所以功能的第一部分很好,但第二部分不起作用,这意味着压缩。

4

1 回答 1

0

所以这里是这个问题的解决方案。我下载了一个 .jpg 文件并将其命名为 .png,因此 mime 类型不是 PNG 而是 JPG!我需要使用 imagecreatefromjpeg 而不是 imagecreatefromfunction

create_img_memoire($REF,$filein)

    {
        //get file and store it
        $fileout = '/home/images/public_html/memoire/'.$REF.'.jpg'; 
        file_put_contents($fileout, file_get_contents($filein));

        //compress it
        $im = imagecreatefromjpeg($fileout);

        $fileout2 = '/home/images/public_html/memoire/'.$REF.'-op9.png'; 
        imagepng($im, $fileout2, 9);
        $fileout3 = '/home/images/public_html/memoire/'.$REF.'-op5.png'; 
        imagepng($im, $fileout3, 5);
        $fileout4 = '/home/images/public_html/memoire/'.$REF.'-op0.png'; 
        imagepng($im, $fileout4, 0);
    }
于 2013-10-18T15:36:29.193 回答