我有一个简单的函数,它从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);
}
下载文件但压缩不起作用。所以函数的第一部分很好,但第二部分不起作用意味着压缩。
答案 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);
}