Постойте? WordPress автоматически сжимает JPEG изображения? Это вполне может стать новостью для вас. Когда jpeg-изображения будут загружены в WordPress, к ним автоматически применится сжатие в 90% от оригинала. Скорее всего, это было введено для того, чтобы ваши страницы загружались быстрее, а размеры файлов были меньше. Да и, в самом деле, заметите ли вы эти «утраченные» 10% цифровых изображений?
Возможно, вы уже сжимали ваши изображения при подготовке их к публикации. В этом случае дополнительное сжатие может показаться излишним. Или, может быть, ваши страницы загружаются очень медленно, и вы хотите сделать сжатие JPEG-изображений более агрессивным? Отлично, мы покажем, как это реализовать.
Как отключить сжатие JPEG файлов
Если вы хотите полностью отключить сжатие jpeg-файлов, то вам необходимо указать WordPress, что все эти файлы надо загружать в 100% качестве.
Добавьте следующую строку в файл functions.php вашей темы (либо создайте свой функциональный плагин):
add_filter( 'jpeg_quality', create_function( '', 'return 100;' ) );
Этот код полностью отключит jpeg-сжатие на вашем сайте. Однако если вы желаете не отключать его, а лишь несколько его изменить, то в таком случае продолжайте читать статью.
Как увеличить сжатие JPEG файлов
Сжатие ваших изображений сильнее, чем значение по умолчанию, сделает размеры вашего файла еще меньше, что может поднять производительность сайта. Сжатие в 80% и в 85% от оригинала практически не отличаются друг от друга. Важно помнить, что чем меньше процент, тем сильнее будет сжато изображение.
add_filter( 'jpeg_quality', create_function( '', 'return 80;' ) );
Заметьте, что любые изменения, которые вы сделаете, будут применяться только к новым изображениям, загруженным на ваш сайт. WordPress не будет автоматически возвращаться назад и изменять размеры всех загруженных ранее изображений. Если вы желаете обновить все свои миниатюры в новом размере, то в таком случае я советую воспользоваться плагином Regenerate Thumbnails. Он быстро пробежится по всем вашим миниатюрам и выполнит необходимые изменения.
Источник: wpmu.org
Так jpeg сам по себе вроде бы при сжатии 100% всё равно сжимает. Т.е. к примеру открываем в каком-нибудь редакторе картинок jpg и сохраняем опять в jpg, при сохранении применяется сжатие 100%. Т.е. я хочу сказать, что в общем случае сжатие в 100% это не отсутствие пережатия и запись неизмененного оригинала. Не знаю как в WP с этим правда.
Я так понимаю, что WP применяет к изображениям некоторые фильтры, которые дополнительно ухудшают качество — это как в Photoshop, когда сохраняешь изображение для web, можно выставлять оптимизацию в определенное число процентов от оригинала. При малом числе процентов появляется зашумленность и замыленность, которая заметна глазу.
Нет, ну в статье то суть была в том, что «полностью отключить сжатие». А я к тому, что установка сжатия в 100% — не есть отключение сжатия. Всё равно ж WP будет пережимать картинки или не будет их трогать?
Имеется в виду 100% качества от оригинала — то есть сам оригинал, без сжатия.
Странно. У меня наверное особенный WP, ибо оригиналы хранятся на сервере.
Данные настройки применяются к масштабируемым картинкам (миниатюре и промежуточному), а не к оригиналу. И как подметил Волшебник
— 100% это тоже сжатие. У JPEG формата любые манипуляции с оным приводят к потери качества. 100% != оригинал.
Раньше была галочка в админке «оставлять оригинал на сервере». Сейчас я её что-то не могу найти, наверное плохо искал. Я так понимаю при любом раскладе на сервере сохраняется оригинал в настоящее время.
И так как оригинал не трогается (можно проверить элементарно по размеру файла — после любых манипуляций он меняется, даже при 100% компрессии), то смысла устанавливать в 100% нету. Можно поиграться с этим параметром и экспериментальным путем получить наилучшее значение между 80% и 90%, при котором качество картинки сильно не пострадает на глаз. Разница в размере между 90% и 100% может быть в 2-3 раза при не заметном ухудшение качества. В общем это отдельная тема, которая много раз обсуждалась в сети (в частности для фотошопа) и стоит учесть, что разработчики не дураки, поэтому глупо делать 100%.
Да… по-моему WP в любом случае не трогает оригинал. Я проверил несколько картинок огромного размера, которые хранятся на сервере. Они идентичны оригиналам. При этом никаких настроек я не трогал. Согласен с BaNru, сжатие применяется только к уменьшенным копиям.
Таким образом данный код не «полностью отключает сжатие» как говорится в статье, а просто задаёт 100%-ный уровень сжатия для уменьшенных изображений.
Оставлю пока так, поскольку так написано в оригинале (хоть это и не совсем верно). Если у человека возникнут похожие вопросы, то он обратится к комментариям и получит ответ. Кстати, это сжатие относится только к JPEG изображениям. Вот код из файла wp-admin/includes/image-edit.php:
Как видно отсюда, gif и png никак не затрагиваются.
Еще есть вот такой плагин для оптимизации изображений:
http://wordpress.org/plugins/ewww-image-optimizer/
Изменение с 90 на 100 параметра функции apply_filters( ‘jpeg_quality’, 100, ‘edit_image’ ) ); не препятствует уменьшению размера файлов изображений, которые загружаются в Медиабиблиотеку
>Кстати, это сжатие относится только к JPEG изображениям
Спасибо КЭП
Это основы.
JPEG имеет шкалу от 0 до 100, при которых 100 не значит 100% качества, а ниже 50% практически не имеет смысла.
PNG — от 0 до 9, где 9 самое максимально сжатие. Все уж давно используют де факто 9.
GIF — не имеет вариантов сжатия (оно там одно по умолчанию), только алгоритмы с цветами и алгоритмы оптимизации, ибо ограничение в 256 цветов (8 бит). Эти же алгоритмы имеются в PNG для 256 и меньшего количества цветов.
Вы лучше подскажите, как сжать уже существующие фотографии на сайте?
где находится файл functions.php темы ?. Подскажите мне пожалуйста. Я его искала, но не нашла.
Фотошопом оригинал не корректируется, на любой размер оригинала выдается размытая тухлая картинка, которую стыдно вставлять в блог.
Плагин отключения сжатия» Disable JPEG Compression»порообовала поставить, активировала- фотки сжаты и по прежнему размыты.
Файл находится в папке с вашей темой на сервере. Доступ к нему можно получить через админку, «Внешний вид — Редактор — Функции темы (functions.php)». Сразу предупреждаю, что если что-то неправильно в него добавить, то тема может перестать работать. Поэтому вы должны иметь доступ к файлам темы на сервере через FTP (на всякий случай). Добавлять строки кода в functions.php надо в самый низ файла.
Вопрос как раз по плагинам, которые подгоняют картинки под тему сайта: после смены темы приходилось менять размеры изображений с помощью плагина. Картинок на сайте очень много и после обработки плагином в папке uploads остается много картинок тех размеров, которые мне не нужны, они просто засоряют базу. Как быстро можно удалить эти ненужные копии? Сама пока знаю только два варианта — перезагрузка всех картинок и вручную удаление, что очень долго.
Можно попробовать провести сканирование изображений плагином:
https://wordpress.org/plugins/cleanup-images/
Он позволит удалить неиспользуемые версии изображений.
Все варианты рассматриваю. Может force regenerate thumbnails
Можно им тоже воспользоваться. Его минус только, что он сильно нагружает блог, поскольку все изображения преобразуются в новый размер за один шаг. Для смены размера есть еще такой плагин: https://wordpress.org/plugins/ajax-thumbnail-rebuild/, но он не удаляет неиспользуемые файлы.
При добавлении строчки:
add_filter( ‘jpeg_quality’, create_function( », ‘return 100;’ )
Сайт вернул мне ошибку 503, пришлось бекапить =(
Если использовать такой вариант как в статье, WP версии 5.0 (другие не тестировал) выдаст ошибку: function create_function() is deprecate
Поэтому, лучше использовать более современное решение:
add_action( ‘jpeg_quality’, ‘mytheme_image_jpeg_quality’ );
function mytheme_image_jpeg_quality(){
return 100;
}
Присоединяюсь, установка уровня в 100 не дает 100% сохранения качества. Изображение остается размытым. Предполагаю что это связано с этим параметром DPI prntscr.com/qkpshs , поскольку если сохранять в фотошопе, то этот параметр равен 96 точек на дюйм.