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

Jak kompresować obrazy za pomocą interfejsu API ImageRecycle (skrypt PHP)?

21

ImageRecycle udostępnia interfejsy API do dodawania obrazu/pdfu, kompresji ich i pobierania. To sprawia, że ​​​​rzeczy są interesujące, więc w zasadzie w dzisiejszych czasach chcę zmniejszyć obrazy, aby zmniejszyć miejsce, które zajmują na serwerze VPS. ImageRecycle obsługuje optymalizację następujących rozszerzeń plików: JPEG/JPG, GIF, BMP, PNG, PDF.

Jak kompresować obrazy za pomocą interfejsu API ImageRecycle (skrypt PHP)?

przetwarzanie obrazu

Oto dokumentacja API, aby dodać nowy obraz. POST /obrazy

Przykład:

  curl -X POST 
    -d 'auth={"key":"your_api_key","secret":"your_api_secret"}' 
    -d 'url=<a class="vglnk" target="_blank" href="https://uploadbeta.com/share-image/2xw" rel="nofollow"><span>https</span><span>://</span><span>uploadbeta</span><span>.</span><span>com</span><span>/</span><span>share</span><span>-</span><span>image</span><span>/</span><span>2xw</span></a>' 
    -d 'params={"compression_type":"lossy"}' 
    '<a class="vglnk" target="_blank" href="https://api.imagerecycle.com/v1/images" rel="nofollow"><span>https</span><span>://</span><span>api</span><span>.</span><span>imagerecycle</span><span>.</span><span>com</span><span>/</span><span>v1</span><span>/</span><span>images</span></a>'

Jeśli zamiast tego zostanie określony plik lokalny, musisz użyć następującej składni:

  curl -X POST 
    -F 'auth={"key":"your_api_key","secret":"your_api_secret"}' 
    -F 'file=@local_file.jpg' 
    -F 'params={"compression_type":"lossy"}' 
    '<a class="vglnk" target="_blank" href="https://api.imagerecycle.com/v1/images" rel="nofollow"><span>https</span><span>://</span><span>api</span><span>.</span><span>imagerecycle</span><span>.</span><span>com</span><span>/</span><span>v1</span><span>/</span><span>images</span></a>'

A oto pomoc zespołu wsparcia ImageRecycle. Dzięki za szybkie odpowiedzi:

Jeśli chcesz wysłać obraz przechowywany na serwerze, nie jest to proste zapytanie POST, musisz wysłać zapytanie POST z typem treści multipart/form-data.
Za pomocą curl możesz to zrobić, używając opcji -F zamiast opcji -d.
Należy również określić z parametrem jest plikiem, używając @ przed nazwą pliku.
Jeśli chcesz uzyskać więcej informacji, jest to udokumentowane na stronie podręcznika curl dostępnej online: http://curl.haxx.se/docs/manpage.html

Oto wiersz poleceń, którego powinieneś użyć:

curl -X POST -F 'auth={„klucz":"twój_klucz_api”,”sekret”:”twój_sekret_api”}’ -F 'plik=@plik_do_wysłania.png’ -F 'params={„typ_kompresji”:”stratny” }’ ’ https://api.imagerecycle.com/v1/images

Możesz użyć parametrów
– typ kompresji”:”lossy” lub typ_kompresji”:”lossless” dla kompresji bezstratnej lub stratnej
– „resize”:{„width”:100″,height”:100} aby zmienić rozmiar obrazu, jeśli to konieczne można określić tylko za pomocą lub wysokość

W takim przypadku żądanie to:

curl -X POST -F 'auth={„klucz”:”twój_klucz_api”,”sekret”:”twój_sekret_api”}’ -F 'plik=@plik_do_wysłania.png’ -F 'params={„typ_kompresji”:”stratny” „,resize”:{„szerokość”:100″,wysokość”:100} }’ ’ https://api.imagerecycle.com/v1/images

Możemy więc napisać skrypt PHP, taki jak następujący, aby zoptymalizować lokalne obrazy (zmniejszyć rozmiar pliku bez dotykania wymiarów lub obrazów lub PDF ).

  1. POST lokalny obraz/pdf na serwer ImageRecycle za pomocą POST /images API
  2. Zmień nazwę lokalnego obrazu/pdf, aby mieć kopię zapasową
  3. Pobierz skompresowany plik z ImageRecycle

Oto zrzut ekranu, upewnij się, że zastąpiłeś app_key i app_seret.

Jak kompresować obrazy za pomocą interfejsu API ImageRecycle (skrypt PHP)?

imagerecycle-image-compression

A serwer potwierdza tę optymalizację z panelu [Historia optymalizacji].

Jak kompresować obrazy za pomocą interfejsu API ImageRecycle (skrypt PHP)?

imagerecycle-image-kompresja-historia

Mam plik test.jpg, który jest zoptymalizowany od 1,7M do 1,6M. Może to nie być dużo, a jeśli wybiorę inne ustawienia, może to dać mi więcej oszczędności (takich jak zmiana rozmiaru). [Napiszę kolejny post na temat recenzji ImageRecycle i innych konkurentów, takich jak Imagefy.

Pełny kod źródłowy:

#!/usr/bin/php
<?php
// Author:  <a class="vglnk" target="_blank" href="https://helloacm.com" rel="nofollow"><span>https</span><span>://</span><span>helloacm</span><span>.</span><span>com</span></a>
  $key = "app_key";
  $secret = "app_secret";
  
  function ImageRecycle($img, $key, $secret) {  
    $cmd = "curl -X POST -F 'auth={"key":"$key","secret":"$secret"}' -F 'file=@$img' -F 'params={"compression_type":"lossy"}' '<a class="vglnk" target="_blank" href="https://api.imagerecycle.com/v1/images" rel="nofollow"><span>https</span><span>://</span><span>api</span><span>.</span><span>imagerecycle</span><span>.</span><span>com</span><span>/</span><span>v1</span><span>/</span><span>images</span></a>'";
    echo $cmd. "n";    
    $rtn = json_decode(shell_exec($cmd), true);
    var_dump($rtn);
    $err = 201;
    if (isset($rtn['errCode'])) {
      $err = (integer)$rtn['errCode'];
    }
    $id = 0;
    if (isset($rtn['id'])) {
      $id = (integer)$rtn['id'];
    }
    if (($err == 201) || ($id > 0)) {
      $optimized_url = $rtn['optimized_url'];
      if (strlen($optimized_url)) {
        echo "Renaming original $img to ${img}_original n";
        rename($img, $img."_original");
      }
      echo "Downloading $optimized_url ...n";
      $optimized_content = file_get_contents($optimized_url);
      echo "Saving optimised to $img ...n";
      file_put_contents($img, $optimized_content);      
    }
  }  
  
  foreach (array_slice($argv, 1) as $img) {
    if (!file_exists($img)) {
      echo $img. " not found.n";
    } else {
      ImageRecycle($img, $key, $secret);
    }
  } 

Następnie uruchomiłeś pętlę bash, aby iterować wszystkie obrazy/ PDF, co powinno dać natychmiastowe oszczędności.

Za pomocą powyższego skryptu udało mi się zaoszczędzić ponad 2 GB miejsca na dysku SSD na VPS.

Dołącz do ImageRecycle i skorzystaj z kuponu IR-PARTNER-20, aby otrzymać 20% zniżki na pierwszą fakturę, wyłącznie dla moich czytelników!

Źródło nagrywania: helloacm.com

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