✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Optymalizacja obrazu za pomocą pakietu artisansweb/image-optimizer

25

Od 4 lat prowadzę tego bloga. Wraz z tym blogiem prowadzę również kanał na YouTube, na którym udostępniam filmy, które pokazują, jak wdrażać moje artykuły.

Wierzę w open source. Na mojej stronie nie prowadzę płatnego członkostwa, nie sprzedaję ebooków ani kursów. Lubię mieć wolne zasoby. Mając to na uwadze, stworzyłem mój pierwszy pakiet GitHub artisansweb/image-optimizer, który zajmuje się optymalizacją obrazów dla Twojej witryny.

W przeszłości napisałem kilka artykułów na temat optymalizacji obrazu. Do tej pory TinyPNG był moim ulubionym i nadal jest. Ale ograniczenie TinyPNG polega na tym, że umożliwiają optymalizację 500 darmowych obrazów miesięcznie. Powyżej 500 obrazów naliczana jest opłata za obraz.

Kilka poprzednich artykułów na temat optymalizacji obrazu:

Istnieją również inne pakiety, ale wymagają one zainstalowania na naszym komputerze oprogramowania takiego jak JpegOptim, Optipng itp. To też nie jest możliwe rozwiązanie.

W zeszłym roku pracowałem nad projektem klienta, który ma tysiące obrazów potrzebnych do kompresji. Szukaliśmy open source i wydajnej usługi, która może wykonać naszą pracę. Potem dowiedzieliśmy się o reSmush.it, który jest całkowicie darmową usługą do optymalizacji obrazów.

Chociaż napisałem artykuł na temat reSmush.it, czuję, że mogę z niego stworzyć pakiet GitHub i tak zrobiłem. Jeśli przeczytałeś mój artykuł na reSmush.it, przekonasz się, że trzeba dodać około 25-30 linijek kodu. Ale jeśli zdecydujesz się na pakiet, możesz to zrobić w 5-6 liniach.

Mając to na uwadze, omówmy, jak zainstalować i używać artisansweb/image-optimizerpakietu.

Optymalizacja obrazu za pomocą PHP

Najpierw musisz zainstalować pakiet za pomocą Kompozytora, uruchamiając polecenie:

composer require artisansweb/image-optimizer

Po zainstalowaniu pakietu możesz zoptymalizować obraz za pomocą poniższego kodu.

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

Tutaj musisz przekazać pełną ścieżkę katalogu obrazu źródłowego, a obraz źródłowy zostanie automatycznie zoptymalizowany. Czasami trzeba zachować oryginalny obraz i przechowywać zoptymalizowaną wersję w innym katalogu. W takim przypadku możesz użyć drugiego parametru jako miejsca docelowego.

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

Używając powyższego kodu, możesz zoptymalizować obrazy, które znajdują się w twoim katalogu. Zalecam jednak zoptymalizowanie obrazu podczas przesyłania, aby nie trzeba było osobno wykonywać zadań optymalizacyjnych.

Użytkownik może zoptymalizować obraz podczas przesyłania w następujący sposób.

<?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>

Chociaż reSmush.it do tej pory skompresował miliardy obrazów, może być możliwe, że ich usługa z jakiegoś powodu nie działa. Ten scenariusz obsługiwałem w pakiecie. Z jakiegoś powodu, jeśli pakiet nie otrzyma zoptymalizowanej wersji z reSmush.it, to jako rezerwę używa natywnych metod PHP, takich jak imagecreatefromjpeg, imagecreatefrompng, imagecreatefromgif, imagejpeg do optymalizacji.

Jest w toku kilka nowych funkcji, które dodam do pakietu i wkrótce go wydam.

Będzie mi miło, jeśli skorzystasz z pakietu i dam znać, jak działa w komentarzach poniżej. Podziel się swoją opinią, abyśmy razem mogli ulepszyć ten pakiet, który pomoże społeczności.

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów