如何使用PHP或任何其他语言减少图像文件大小而不会丢失质量或分辨率?

时间:2015-08-19 11:45:13

标签: javascript java php python image-processing

我有1 MB高清分辨率图像。我希望文件大小将减少到50%min(512KB)。我已经尝试使用PHP,但它不适合我。如果有人知道请帮助我。

https://tinyjpg.com/这个网站。

$filename = "image.jpg"; // 1 mb image file
header('Content-Type: image/jpeg');

list($width_orig, $height_orig) = getimagesize($filename);
$width = $width_orig;
$height = $height_orig;

$ratio_orig = $width_orig / $height_orig;

if ($width / $height > $ratio_orig) {
 $width = $height * $ratio_orig;
} else {
 $height = $width / $ratio_orig;
}

$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
imagejpeg($image_p, "image_resized.jpg", 100);

2 个答案:

答案 0 :(得分:0)

function compress_image($ source_url,$ destination_url,$ quality){

    $info = getimagesize($source_url);

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

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

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

        imagejpeg($image, $destination_url, $quality);
    return $destination_url;
}

答案 1 :(得分:-1)

您可能希望查看TrimageImageOtim。此外,您可以尝试将图像转换为其他文件格式;某些格式比其他格式更好地压缩某些类型的图像。

除非您的图片中存在大量冗余,否则您不太可能在不丢失信息的情况下将尺寸缩小50%。