Вес отдаваемых изображений довольно важный аспект оптимизации скорости загрузки сайта.
Кроме двух распространенных способов уменьшения веса изображения, а именно изменения размеров и ухудшения качества, есть третий способ – удаление сопутствующих данных в файле изображения (чистка метаданных).
Для решения задачи по удалению метаданных из файла изображения можно воспользоваться php-расширением Imagick, ниже привожу пример кода с комментариями:
$original_file = '/file_path/img_name.jpg'; $image = new Imagick($original_file); // Сохраняет цветовой профиль $icc_profile = $image->getImageProfiles('icc', true); // Очищает изображение от лишней информации $image->stripImage(); // Если цветовой профиль не пустой, то возвращает его if(!empty($icc_profile)) { $image->profileImage('icc', $icc_profile['icc']); } // записывает изображение в файл $image->writeImage('/file_path/result_image.png'); // или отображает изображение на экране header('Content-Type: image/' . $image->getImageFormat()); echo $image;
Комментарии ()