WEB и WordPress новости, темы, плагины. Здесь мы делимся советами и лучшими решениями для сайтов.

Оптимизация изображений с помощью пакета artisansweb / image-optimizer

95

Вот уже 4 года я веду этот блог. Наряду с этим блогом я также веду канал на YouTube, где делюсь видео, в которых показано, как реализовать мои статьи.

Я верю в открытый исходный код. На моем веб-сайте у меня нет платного членства, я не продаю электронные книги или курсы. Мне нравится, когда ресурсы остаются свободными. Имея это в виду, я создал свой первый пакет GitHub artisansweb / image-optimizer, который выполняет задачу оптимизации изображений для вашего веб-сайта.

Раньше я писал несколько статей по оптимизации изображений. До сих пор TinyPNG был моим любимым и до сих пор остается. Но ограничение TinyPNG в том, что они позволяют оптимизировать 500 бесплатных изображений в месяц. Выше 500 изображений взимается плата за изображение.

Несколько из предыдущих статей по оптимизации изображений:

Есть и другие пакеты, но они требуют, чтобы мы установили на нашу машину такое программное обеспечение, как JpegOptim, Optipng и т.д. Это тоже неосуществимое решение.

В прошлом году я работал над клиентским проектом, в котором нужно сжать тысячи изображений. Мы искали эффективный сервис с открытым исходным кодом, который справился бы с нашей работой. Затем мы узнали о reSmush.it, который является полностью бесплатным сервисом для оптимизации изображений.

Хотя я написал статью о reSmush.it, я чувствую, что могу создать из нее пакет GitHub, и я это сделал. Если вы прочитаете мою статью о reSmush.it, вы обнаружите, что нужно добавить около 25-30 строк кода. Но если вы идете за пакетом, это можно сделать в 5-6 строках.

При этом давайте обсудим, как установить и использовать artisansweb/image-optimizerpackage.

Оптимизация изображений с помощью PHP

Сначала вам нужно установить пакет с помощью Composer, выполнив команду:

composer require artisansweb/image-optimizer

После установки пакета вы можете оптимизировать изображение, используя приведенный ниже код.

<?php
require_once "vendor/autoload.php";
 
use ArtisansWebOptimizer;
 
$img = new Optimizer();
 
$source = 'SOURCE_PATH_OF_IMAGE';
$img->optimize($source);

Здесь вам нужно передать полный путь к каталогу исходного изображения, и ваше исходное изображение будет оптимизировано автоматически. Иногда вам нужно сохранить исходное изображение и сохранить оптимизированную версию в другом каталоге. В этом случае вы можете использовать второй параметр для пункта назначения.

<?php
$source = 'SOURCE_PATH_OF_IMAGE';
$destination = 'DESTINATION_PATH_OF_IMAGE';
$img->optimize($source, $destination);

Используя приведенный выше код, вы можете оптимизировать изображения, которые находятся внутри вашего каталога. Однако я бы порекомендовал оптимизировать изображение при загрузке, чтобы вам не приходилось выполнять задачи оптимизации отдельно.

Пользователь может оптимизировать изображение при загрузке следующим образом.

<?php
require_once "vendor/autoload.php";
 
use ArtisansWebOptimizer;
 
if (isset($_POST['submit'])) {
    $img = new Optimizer();
    move_uploaded_file($_FILES['file']['tmp_name'], 'images/'.$_FILES['file']['name']);
    $img->optimize('images/'.$_FILES['file']['name']);
}
?>
 
<form method="post" enctype="multipart/form-data">
    <input type="file" name="file" />
    <input type="submit" name="submit" value="Submit" />
</form>

Хотя reSmush.it пока сжал миллиарды изображений, возможно, их сервис по какой-то причине не работает. Я обработал этот сценарий в пакете. По какой-то причине, если пакет не получает оптимизированную версию из reSmush.it, то в качестве запасного варианта он использует собственные методы PHP, такие как imagecreatefromjpeg, imagecreatefrompng, imagecreatefromgif, imagejpeg для оптимизации.

Есть несколько новых функций, которые я добавлю в пакет и скоро выпущу.

Буду рад, если вы воспользуетесь пакетом и дадите мне знать, как он работает, в разделе комментариев ниже. Поделитесь своими отзывами, чтобы мы вместе могли улучшить этот пакет, который поможет сообществу.

Источник записи: artisansweb.net

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее