Редактор темы

Реклама
Реклама

Dle image resizer & optimizer

  • Автор темы Автор темы DLEMod
  • Дата начала Дата начала

DLEMod

Бывалый
Регистрация
20 Фев 2021
Сообщения
121
Рейтинг реакций
28
Баллы
28
1/3
Автор темы
Image Resizer — это мощный инструмент для работы с изображениями, включающий их изменение размеров (resize), сжатие и управление кешем. Этот модуль разработан для администраторов сайтов и конечных пользователей, позволяя оптимизировать изображения для веб-сайта без потери качества, сохраняя минимальный размер файлов.

Основные возможности
1. Изменение размеров изображений
  • Поддержка изменения ширины и высоты изображений с сохранением пропорций.
  • Возможность указания разрешённых размеров через файл allowed_sizes.txt.
  • Если файл пуст, допускаются любые размеры.
2. Сжатие изображений
  • Использует библиотеку Imagick для высококачественной обработки.
  • Возможность настройки уровня качества сжатия (от 1 до 100).
  • Поддержка глубины цвета (8-bit, 24-bit и другие).
  • Выбор фильтров ресайза (например, LANCZOS, BOX, TRIANGLE).
3. Поддержка форматов
  • Автоматическое определение форматов изображений: JPEG, PNG, GIF, WebP.
  • Удаление ненужных метаданных для оптимизации размера изображений.
4. Управление кешем
  • Обработанные изображения сохраняются в кеше для ускорения повторного доступа.
  • Возможность очистки кеша через административную панель.
  • Информация о размере кеша и количестве хранимых файлов.
5. Безопасность
  1. Строгая проверка доступа: модуль работает только на разрешённом домене.
  2. Исключение обработки внешних URL.
  3. Защита POST-запросов с использованием CSRF-токенов.
  4. Проверка наличия и соответствия файлов корневой директории сайта.


Панель администратора
Модуль оснащён удобной административной панелью с двумя вкладками:

1. Настройки кеша
  • Поле для указания разрешённых размеров изображений (например, 100x100 или 100).
  • Информация о текущем размере кеша и количестве файлов.
  • Возможность очистки кеша одним кликом.
2. Настройки сжатия
  • Поля для ввода уровня качества сжатия и глубины цвета.
  • Выбор фильтра для ресайза изображений (LANCZOS, BOX, TRIANGLE).
  • Настройки сохраняются без редактирования файлов вручную.
Обработка запросов
Пользователь отправляет запрос с параметрами (ширина, высота, путь к изображению). Модуль проверяет параметры, применяет ограничения, заданные в конфигурации, и возвращает обработанное изображение.

Создание кешированных изображений
  • Если запрашиваемое изображение уже существует в кеше, оно возвращается напрямую.
  • Если изображения нет в кеше, модуль обрабатывает оригинал, изменяет его и сохраняет в кеше.
Управление через административную панель
Администраторы могут:

  • Изменять настройки сжатия и разрешённых размеров
  • Очищать кеш для освобождения места.
Пример использования
https://site.com/resize.php?file=/images/sample.jpg&w=300&h=200



    • file — путь к изображению.
    • w — ширина нового изображения.
    • h — высота нового изображения.
Пример конфигурационного файла
{
"filter": "Imagick::FILTER_LANCZOS",
"quality": 85,
"depth": 24
}




    • filter — фильтр ресайза изображения (LANCZOS, BOX, TRIANGLE).
    • quality — уровень качества изображения (например, 85).
    • depth — глубина цвета (например, 24).
Преимущества модуля



    • Скорость загрузки сайта — оптимизированные изображения уменьшают время загрузки страниц.
    • Простота настройки — все параметры доступны через административную панель.
    • Гибкость — поддержка различных форматов и настроек позволяет адаптировать модуль под любые требования.
    • Безопасность — строгая защита от несанкционированного доступа.
Этот модуль станет незаменимым инструментом для повышения производительности вашего сайта!

Процесс кеширования изображений



    • Проверка входных параметров
      • Код проверяет входные параметры outputDir, file, w (ширина) и h (высота).
      • Убеждается, что запрашиваемый файл принадлежит домену kinetoon.com и существует на файловой системе сервера.
    • Проверка выходной директории
      • Проверяется наличие директории cache (или той, что указана в outputDir).
      • Если директория отсутствует, она создаётся с правами 0755.
    • Проверка допустимых размеров
      • Код считывает файл allowed_sizes.txt для проверки разрешённых размеров.
      • Если запрошенные размеры не входят в список допустимых, возвращается сообщение об ошибке.
    • Формирование имени кеш-файла
      • Имя кеш-файла формируется по следующей схеме
        {$outputDir}/{$width}x{$height}_{$encodedPath}
        где:
        • $width и $height — запрашиваемые размеры изображения,
        • $encodedPath — имя файла, закодированное с помощью md5.
        Например, если запрашивается файл image.jpg, он может быть закеширован как:
        cache/300x200_d41d8cd98f00b204e9800998ecf8427e.webp
    • Блокировка файла (locking)
      • Для предотвращения конфликтов при одновременной обработке одного и того же файла используется система блокировки.
    • Сохранение в кеше
      • Если файл уже существует в директории cache, он немедленно загружается и возвращается.
      • Если файла нет, он обрабатывается (для создания новых размеров), кешируется и затем возвращается клиенту.
Формат изображений и качество хранения



    • Предварительная обработка с использованием библиотеки Imagick
      • Изображение обрабатывается библиотекой Imagick.
      • Если указана только ширина или высота, второй параметр вычисляется пропорционально (с сохранением aspect ratio).
    • Изменение размеров
      • Для изменения размеров используется метод resizeImage.
      • Параметры фильтрации и качества задаются в файле config.json, включая:
        • Тип фильтра (например, FILTER_LANCZOS),
        • Качество сжатия (quality),
        • Глубину цвета (depth).
    • Формат хранения: WebP
      • Все изображения сохраняются в формате WebP (setImageFormat('webp')), который обеспечивает высокое качество при небольшом размере файла.
      • WebP подходит как для фотографий, так и для графики.
    • Удаление метаданных
      • Метод stripImage удаляет лишние метаданные (например, EXIF или другую информацию), что уменьшает размер файла.
    • На выходе
      • Обработанный файл записывается в директорию cache.
      • MIME-тип файла устанавливается, чтобы браузер корректно отображал изображение.
Итог
Основные этапы кеширования и хранения изображений:



    • Анализ и проверка входных параметров.
    • Проверка, существует ли файл в кеше.
    • Если файла нет, он обрабатывается: изменяются размеры, качество и формат (WebP).
    • Закешированный файл сохраняется в выходной директории с именем, закодированным через md5.
    • При следующем запросе того же файла он загружается напрямую из кеша.
Такой подход значительно ускоряет доставку изображений и снижает нагрузку на сервер.

Модуль предоставляется с чистой лицензией без привязки к домену.
Стоимость: 4000р. (единовременная оплата)
После покупки вы получите полный исходный код модуля, готового к установке и использованию.

Для приобретения — пишите: t.me/snh001

------------------------
Хотите уникальный модуль для DLE? Сделаем под ключ! Связь: t.me/snh001
------------------------

 
Последнее редактирование:
Мне этого хватает - Miniposter PRO by Sander v.3.4.4 за 600р, 4к дорого нах
 
Автор темы
«Это открытый код без всякой привязки к домену — купил один раз и делай что хочешь: меняй домены, настраивай под себя, редактируй как душе угодно.»
 
Мне этого хватает - Miniposter PRO by Sander v.3.4.4 за 600р, 4к дорого нах
Согласен кроме Miniposter PRO by Sander есть и DLE - Модуль image resizer - бесплатный модуль для автоматического сжатия и обрезки картинок

Добавить бы imagesrcset + imagesizes (Предварительная загрузка адаптивных изображений  |  Articles  |  web.dev for China)

Было бы интереснее... есть демо с большими фото для оценки кеша???
 
Автор темы

Вложения

  • 00001.png
    00001.png
    124,5 КБ · Просмотры: 34
  • 00002.png
    00002.png
    28,6 КБ · Просмотры: 32
  • 00003.png
    00003.png
    15 КБ · Просмотры: 32
думаю минипостер не перепрыгнуть, а все же, открытый код - ошибка. дай бог заработаешь на первых 3-5 покупках и все остановится.
 
Автор темы
думаю минипостер не перепрыгнуть, а все же, открытый код - ошибка. дай бог заработаешь на первых 3-5 покупках и все остановится.

MiniPoster — возможно, хороший модуль, хотя я лично с ним подробно не знаком. Судя по описанию на их сайте, он работает до версии DLE 17.
В отличие от него, наш Image Resizer абсолютно независим от DLE и его версий. Модуль можно использовать с любой CMS — или даже как отдельный инструмент, слегка адаптировав под конкретные нужды.

Что касается открытого кода — это осознанное решение. Для многих проектов важна прозрачность и возможность кастомизации.
А тем, кто работает с сайтами и оптимизацией, такой инструмент экономит массу времени и трафика.
 
MiniPoster — возможно, хороший модуль, хотя я лично с ним подробно не знаком. Судя по описанию на их сайте, он работает до версии DLE 17.
В отличие от него, наш Image Resizer абсолютно независим от DLE и его версий. Модуль можно использовать с любой CMS — или даже как отдельный инструмент, слегка адаптировав под конкретные нужды.

Что касается открытого кода — это осознанное решение. Для многих проектов важна прозрачность и возможность кастомизации.
А тем, кто работает с сайтами и оптимизацией, такой инструмент экономит массу времени и трафика.

Он прекрасно работает и на 18. Отличия от вашего только в кеширование и то не совсем понятно индексирует такие картинки тот же гугл. А то что не хватает это, например, imagesrcset + imagesizes
 

Похожие темы Последние темы Популярные темы

Назад
Сверху