Скрипт для обробки зображень у формат WebP
Цей скрипт створений для автоматизації процесу обробки зображень на вашому веб-сайті - він конвертує зображення у сучасний формат WebP, що забезпечує зменшення розміру файлів при збереженні високої якості.
Використання WebP допомагає зменшити час завантаження сторінок, що позитивно впливає на користувацький досвід та SEO вашого сайту.
У цьому посібнику ви дізнаєтеся, як правильно налаштувати та використовувати наш скрипт для досягнення найкращих результатів з переводу сайта на webp.
Короткий опис WebP
WebP — це формат файлу, розроблений компанією Google у 2010 році. Його основною характеристикою є вдосконалений алгоритм стиснення, який дозволяє зменшити розмір зображення без помітних втрат якості.
Хоча інші формати також підтримують стиснення, технології, на яких базується WebP, є більш прогресивними. У порівнянні з конкурентами, WebP демонструє вищу ефективність у відношенні стиснення до якості зображення.
У середньому, розмір зображень зменшується на 25–35%, що дає вебмайстрам можливість завантажувати більше зображень на сайти, економлячи простір на жорсткому диску.
При розробці формату Google використовував ті ж методи стиснення, що й у кодеках VP8.>
Переваги WebP в порівнянні з іншими форматами
Головна перевага WebP — це зменшений розмір файлів. Це позитивно впливає на кілька аспектів роботи в інтернеті:
- Сайти з стиснутими WebP-зображеннями працюють швидше. Менше часу витрачається на обробку невеликих файлів, навіть якщо в статті міститься безліч зображень.
- Завантажуючи невеликі зображення на VDS, можна зекономити місце на жорсткому диску.
- Користувачі витрачатимуть менше мобільного трафіку, відвідуючи сайт зі смартфона.
- Завантаження каналу до сервера буде меншим, якщо передавати менші медіа-файли, що також підвищує продуктивність.
Таким чином, переваги WebP стають очевидними в порівнянні з іншими форматами.
Опис функціоналу
Даний скрипт призначений для автоматичної обробки зображень на веб-сайті. Він конвертує зображення у формат WebP, що забезпечує менший розмір файлів без значної втрати якості.
Це прискорює завантаження сторінок та покращує продуктивність сайту.
Скрипт підтримує кешування, щоб не створювати одні й ті ж зображення повторно, а також виводить лог-повідомлення в консоль для зручності налагодження.
Основні функції
- Конвертація зображень у формат WebP.
- Кешування вже створених зображень для запобігання повторної обробки.
- Обробка зображень в атрибутах srcset.
- Паралельна обробка кількох зображень для підвищення продуктивності.
- Валідація MIME-типу та розміру завантажуваних зображень.
Принцип роботи
- Завантаження сторінки: Скрипт запускається під час завантаження сторінки та шукає всі зображення () на сторінці.
- Перевірка кешу: Для кожного зображення скрипт перевіряє наявність кешованого файлу WebP. Якщо файл існує і термін його дії не закінчився, зображення замінюється на кешоване.
- Створення WebP: Якщо кешованого файлу немає або термін дії закінчився, оригінальне зображення завантажується, конвертується у WebP, а потім завантажується на сервер.
- Оновлення srcset: Якщо у зображення є атрибут srcset, скрипт обробляє його аналогічно основному зображенню, створюючи та кешуючи нові версії у форматі WebP.
- Логування: Усі дії скрипта логуються в консолі браузера для зручності налагодження.
Структура скрипта
- Основний скрипт (script.js): Включає в себе всю логіку обробки зображень і взаємодії з сервером.
- Файл для завантаження зображень (upload.php): PHP-скрипт на сервері, який приймає завантажувані зображення та зберігає їх у вказаній директорії.
Мінімальні вимоги для роботи
- Веб-сервер з підтримкою PHP (наприклад, Apache або Nginx).
- PHP версії 5.0 або вище.
- Підтримка формату WebP на сервері.
- JavaScript, що підтримує Promises (більшість сучасних браузерів).
Опис параметрів, які можна змінити
CACHE_DURATION
- Тип: Число (в мілісекундах)
- Опис: Час дії кешу для зображень (за замовчуванням 30 днів).
- Приклад: const CACHE_DURATION = 30 * 24 * 60 * 60 * 1000;
DEBUG
- Тип: Логічне значення
- Опис: Увімкнення режиму налагодження, який відключає кешування.
- Приклад: const DEBUG = false;
LOG_TO_CONSOLE
- Тип: Логічне значення
- Опис: Увімкнення виводу логів у консоль браузера.
- Приклад: const LOG_TO_CONSOLE = true;
MAX_IMAGE_SIZE
- Тип: Число (в байтах)
- Опис: Максимально допустимий розмір зображення для обробки (за замовчуванням 5 MB).
- Приклад: const MAX_IMAGE_SIZE = 5 * 1024 * 1024;
VALID_MIME_TYPES
- Тип: Масив рядків
- Опис: Дозволені MIME-типи для завантажуваних зображень.
- Приклад: const VALID_MIME_TYPES = ['image/jpeg', 'image/png'];
COMPRESSION_QUALITY
- Тип: Число (від 0.0 до 1.0)
- Опис: Якість стиснення для зображень WebP (за замовчуванням 0.8).
- Приклад: const COMPRESSION_QUALITY = 0.8;
MAX_CONCURRENT_REQUESTS
- Тип: Число
- Опис: Максимальна кількість паралельних запитів на обробку зображень.
- Приклад: const MAX_CONCURRENT_REQUESTS = 5;
Встановлення та використання
- Завантажте файл script.js та upload.php.
- Завантажте їх на ваш сервер, у директорію, де знаходяться ваші зображення.
- Переконайтеся, що у вас є файл .htaccess у директорії завантаження для обмеження доступу.
- Створіть теку "uploads" з правами 777 для загрузки створених зображень формату webp.
- Файл upload_log.txt створиться автоматично, якщо буде включено логування.
- Додайте посилання на script.js у ваш HTML-код перед закриваючим тегом