Với hình ảnh do người dùng tải lên, tôi cần tạo nhiều hình thu nhỏ khác nhau để hiển thị trên trang web. Tôi đang sử dụng ImageMagick và cố gắng làm cho Google PageSpeed trở nên hạnh phúc. Thật không may, không có vấn đề gì giá trị quality
tôi chỉ định trong lệnh convert
, PageSpeed vẫn có thể đề xuất nén hình ảnh hơn nữa.Google PageSpeed & ImageMagick Nén JPG
Lưu ý rằng http://www.imagemagick.org/script/command-line-options.php?ImageMagick=2khj9jcl1gd12mmiu4lbo9p365#quality đề cập:
Đối với các định dạng JPEG ... hình ảnh, chất lượng là 1 [cung cấp] chất lượng thấp nhất hình ảnh và nén cao nhất ....
Tôi thực sự thậm chí đã thử nghiệm nén hình ảnh bằng cách sử dụng 1 (mặc dù nó đã tạo ra một hình ảnh không sử dụng được) và PageSpeed vẫn gợi ý rằng tôi vẫn có thể tối ưu hóa hình ảnh đó bằng cách "nén không nén" hình ảnh. Tôi không biết làm thế nào để nén một hình ảnh nữa bằng cách sử dụng ImageMagick. Mọi đề xuất?
Dưới đây là một cách nhanh chóng để kiểm tra những gì tôi đang nói về:
assert_options(ASSERT_BAIL, TRUE);
// TODO: specify valid image here
$input_filename = 'Dock.jpg';
assert(file_exists($input_filename));
$qualities = array('100', '75', '50', '25', '1');
$geometries = array('100x100', '250x250', '400x400');
foreach($qualities as $quality)
{
echo("<h1>$quality</h1>");
foreach ($geometries as $geometry)
{
$output_filename = "$geometry-$quality.jpg";
$command = "convert -units PixelsPerInch -density 72x72 -quality $quality -resize $geometry $input_filename $output_filename";
$output = array();
$return = 0;
exec($command, $output, $return);
echo('<img src="' . $output_filename . '" />');
assert(file_exists($output_filename));
assert($output === array());
assert($return === 0);
}
echo ('<br/>');
}
Tôi nghĩ rằng nó muốn bạn thử một định dạng lossless như PNG. Đôi khi điều này có thể cung cấp cho bạn nén tốt hơn, đặc biệt là đối với hình ảnh nhỏ; nhưng nó thực sự phụ thuộc vào loại hình ảnh mà người dùng của bạn đang tải lên. –
Tốc độ trang đang đề cập đến JPG (vì nó thực sự cung cấp JPG có thể được lưu). Người dùng đang tải ảnh lên. – StackOverflowNewbie
Hmm lạ, do đó, nó là JPEG nó cung cấp nhỏ hơn của bạn tự động tạo ra một? –