✅ WEB і WordPress новини, теми, плагіни. Тут ми ділимося порадами і кращими рішеннями для сайтів.

Оптимізація зображень за допомогою пакету artisansweb / image-optimizer

9

Вже 4 роки я веду цей блог. Разом із цим блогом я також веду канал YouTube, де ділюсь відео, де показано, як реалізувати мої статті.

Я вірю у відкрите джерело. На своєму веб-сайті я не платую за членство, не продаю електронні книги та курси. Я люблю залишати ресурси вільними. З огляду на це, я створив свій перший пакет GitHub artisansweb / оптимізатор зображень, який виконує завдання оптимізації зображень для вашого веб-сайту.

Раніше я писав кілька статей з оптимізації зображень. До цих пір TinyPNG був моїм улюбленим, і все ще є. Але обмеження TinyPNG полягає в тому, що вони дозволяють оптимізувати 500 безкоштовних зображень на місяць. Понад 500 зображень ви будете платити за кожне зображення.

Кілька попередніх статей з оптимізації зображень:

Є й інші пакети, але вони вимагають від нас встановлення програмного забезпечення, такого як JpegOptim, Optipng тощо на нашій машині. Це також не є можливим рішенням.

Останній рік я працював над проектом клієнта, який містить тисячі зображень, необхідних для стиснення. Ми шукали відкритого коду та ефективного сервісу, який може виконувати нашу роботу. Потім ми дізналися про reSmush.it, який є абсолютно безкоштовною послугою для оптимізації зображень.

Хоча я писав статтю на reSmush.it, я відчуваю, що можу створити з неї пакет GitHub, і я це зробив. Якщо ви прочитаєте мою статтю на reSmush.it, то виявите, що до неї потрібно додати близько 25-30 рядків коду. Але якщо ви йдете за пакетом, це можна зробити в 5-6 рядків.

З огляду на це, давайте обговоримо, як встановити та використовувати artisansweb/image-optimizerпакет.

Оптимізація зображень за допомогою 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, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі