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

Kompresuj obrazy dla strony internetowej za pomocą reSmush.it w PHP

31

Opublikowany w PHP

Obrazy sprawiają, że Twoja witryna jest piękna i zapewnia lepsze wrażenia użytkowników. Jednak obrazy mogą również wpłynąć na wydajność witryny i sprawić, że szybkość witryny będzie szalenie niska. A wszyscy wiemy, że wolniejsze strony internetowe nie mogą odnieść sukcesu w Internecie.

W tym artykule pokazujemy, jak kompresować obrazy dla stron internetowych za pomocą reSmush.it w PHP. Korzystając z tej usługi, użytkownicy mogą zmniejszyć rozmiar obrazów na swoich stronach internetowych. Pomoże to w poprawie szybkości strony. reSmush.it to darmowe narzędzie do kompresji obrazu. Użytkownik może skompresować dowolną liczbę obrazów. Nie ma takiego ograniczenia liczby zdjęć.

W chwili pisania tego artykułu reSmush.it kompresuje do tej pory ponad 7 miliardów obrazów i wciąż się liczy. Ta liczba świadczy o tym, że jest to dość popularna usługa wśród użytkowników.

Pierwsze kroki

Stwórzmy prosty formularz, w którym użytkownik może przesłać obraz. Po przesłaniu obrazu za pomocą PHP wyślemy obraz do usług reSmush.it i otrzymamy zoptymalizowaną wersję naszego obrazu.

<form method="post" enctype="multipart/form-data">     <p><input type="file" name="image" accept="image/*" /></p>     <input type="submit" name="submit" value="Submit"> </form>

Tutaj dodaliśmy plik wejściowy i przycisk przesyłania. Użyliśmy również atrybutu, accept="image/*"który pozwala wybrać tylko pliki graficzne.

Kompresuj obrazy dla strony internetowej w PHP

Teraz musimy wejść w interakcję z interfejsem API reSmush.it. Zamierzamy napisać kod, który wykona następujące kroki.

  • Prześlij obraz na nasz serwer.
  • Wyślij przesłany obraz do punktu końcowego interfejsu API reSmush.it.
  • Otrzymuje ścieżkę zoptymalizowanego obrazu.
  • Przechowuj tę zoptymalizowaną wersję na naszym serwerze, zastępując oryginalny obraz.

Zanim przejdziesz dalej, upewnij się, że masz włączone rozszerzenie cURL na swoim serwerze.

<?php if (isset($_POST['submit'])) {        //allowed file types     $arr_file_types = ['image/png', 'image/gif', 'image/jpg', 'image/jpeg'];        if (!(in_array($_FILES['image']['type'], $arr_file_types))) {            die('Only image is allowed!');     }        if (!file_exists('uploads')) {         mkdir('uploads', 0777);     }        move_uploaded_file($_FILES['image']['tmp_name'], 'uploads/'. $_FILES['image']['name']);        // optimize image using reSmush.it     $file = getcwd(). '/uploads/'. $_FILES['image']['name'];     $mime = mime_content_type($file);     $info = pathinfo($file);     $name = $info['basename'];     $output = new CURLFile($file, $mime, $name);     $data = array(         "files" => $output,     );        $ch = curl_init();     curl_setopt($ch, CURLOPT_URL, 'http://api.resmush.it/?qlty=80');     curl_setopt($ch, CURLOPT_POST,1);     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);     curl_setopt($ch, CURLOPT_POSTFIELDS, $data);     $result = curl_exec($ch);     if (curl_errno($ch)) {        $result = curl_error($ch);     }     curl_close ($ch);        $arr_result = json_decode($result);        // store the optimized version of the image     $ch = curl_init($arr_result->dest);     $fp = fopen(getcwd(). '/uploads/'. $name, 'wb');     curl_setopt($ch, CURLOPT_FILE, $fp);     curl_setopt($ch, CURLOPT_HEADER, 0);     curl_exec($ch);     curl_close($ch);     fclose($fp);        echo "File uploaded successfully."; } ?>

W powyższym kodzie ustawiłem wartość jakości na „80", co jest zalecane. Możesz dostosować tę liczbę do mniej więcej. Przechowujemy obrazy w uploadskatalogu. W twoim przypadku możesz dostosować ten katalog.

Mam nadzieję, że rozumiesz, jak skompresować obrazy dla witryny w PHP za pomocą reSmush.it. Chciałbym usłyszeć wasze przemyślenia i sugestie w sekcji komentarzy poniżej.

Powiązane artykuły

Ź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