如何在Linux中减少图像大小。我已经使用了ImageMagick。但它对gif图像效果不佳。我用它作为:
调整图片大小
exec("convert $original -resize " . $width . 'x' . $height . ' ' . $destination);
缩小图像尺寸
exec("convert $original -quality 80% $new_img");
如果您有办法缩小图像尺寸,请与我们联系。此代码适用于jpg,但不适用于gif图像。
感谢您的帮助。
答案 0 :(得分:1)
-quality value
JPEG/MIFF/PNG compression level.
这意味着使用质量级别仅适用于上述图像类型,不包括GIF。
对于GIF,最简单的选择是使用-colors
命令减少图像中使用的颜色数量。结果的质量在很大程度上取决于您的初始图像包含的内容,我已经看到从256到16种颜色减少不会导致显着质量损失的情况,以及其他减少到128种颜色使图像无法使用的情况。你必须进行实验。
最后一条话:您可以将GIF转换为PNG格式,并在生成的图像上使用-quality
命令。然而,PNG的质量有点用词不当:
对于MNG和PNG图像格式,质量值设置zlib压缩 等级(质量/ 10)和过滤器类型(质量%10)。默认的PNG“质量” 是75,这意味着压缩级别7具有自适应PNG过滤,除非 图像有一个颜色图,在这种情况下,它表示没有PNG的压缩级别7 过滤
因此,如果PNG上的尺寸缩小比JPG'小,那就不要感到惊讶,它只会改善无损PNG图像的压缩。
答案 1 :(得分:0)
要缩小GIF图像的大小,您可以尝试将它们转换为PNG或减少颜色深度。颜色深度是图像中使用的颜色数。颜色越少意味着图像尺寸越小。
答案 2 :(得分:0)
所以你可以使用GD http://ua.php.net/manual/en/function.imagecopyresampled.php <
?php
// The file
$filename = 'test.jpg';
// Set a maximum height and width
$width = 200;
$height = 200;
// Content type
header('Content-Type: image/jpeg');
// Get new dimensions
list($width_orig, $height_orig) = getimagesize($filename);
$ratio_orig = $width_orig/$height_orig;
if ($width/$height > $ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}
// Resample
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
// Output
imagejpeg($image_p, null, 100);
?>
答案 3 :(得分:0)
以下适用于JPEG图像,可能适用于其他图像格式。给定的密度(300)非常高,适合保持文本可读,因此请根据您的情况进行调整。
convert input-file -density 300 -quality 50% output-file