哪种方法可以在不降低质量的情况下缩小图像大小

时间:2012-07-10 17:22:51

标签: php image compression

我正在尝试开发基于图像的网站。我对图像类型和压缩技术感到困惑。请告诉我压缩图像尺寸的最佳方法。

4 个答案:

答案 0 :(得分:72)

如果您希望使用编码本身来减小大小,可以在php中使用此代码。

<?php 
function compress($source, $destination, $quality) {

    $info = getimagesize($source);

    if ($info['mime'] == 'image/jpeg') 
        $image = imagecreatefromjpeg($source);

    elseif ($info['mime'] == 'image/gif') 
        $image = imagecreatefromgif($source);

    elseif ($info['mime'] == 'image/png') 
        $image = imagecreatefrompng($source);

    imagejpeg($image, $destination, $quality);

    return $destination;
}

$source_img = 'source.jpg';
$destination_img = 'destination .jpg';

$d = compress($source_img, $destination_img, 90);
?>

$d = compress($source_img, $destination_img, 90);

这只是一个PHP函数,它传递源图像(即$source_img),目标图像($destination_img)和要压缩的图像的质量(即90)。 / p>

$info = getimagesize($source);

getimagesize()函数用于查找任何给定图像文件的大小,并返回尺寸和文件类型。

答案 1 :(得分:6)

我会去jpeg。阅读有关图像尺寸缩小的this post,在决定使用该技术后,请使用ImageMagick

希望这有帮助

答案 2 :(得分:4)

您可以调整大小,然后使用imagejpeg()

不要传递100作为imagejpeg()的质量 - 超过90的任何东西通常都是矫枉过正的,只会让你获得更大的JPEG。对于缩略图,请尝试75并向下工作,直到质量/尺寸权衡可以接受为止。

imagejpeg($tn, $save, 75);

答案 3 :(得分:3)

我认为我有一些有趣的东西...... https://github.com/whizzzkid/phpimageresize。我是为了完全相同的目的写的。高度可定制,并以很好的方式完成。