压缩无法与imagepng一起使用

时间:2013-10-18 12:59:27

标签: php optimization png

我有一个简单的函数,它从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);
}

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

1 个答案:

答案 0 :(得分: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);
    }