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

Як стиснути зображення за допомогою ImageRecycle API (скрипт PHP)?

25

ImageRecycle надає API для додавання зображень/pdf, їх стиснення та завантаження. Це робить речі цікавими, тому, по суті, сьогодні я хочу зменшити зображення, щоб зменшити простір, який вони займають на сервері VPS. ImageRecycle підтримує оптимізацію таких розширень файлів: JPEG/JPG, GIF, BMP, PNG, PDF.

Як стиснути зображення за допомогою ImageRecycle API (скрипт PHP)?

imagerecycle

Ось документація API для додавання нового зображення. POST /зображення

приклад:

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

Якщо замість цього вказано локальний файл, ви повинні використовувати такий синтаксис:

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

А ось допомога від команди підтримки ImageRecycle. Дякуємо за оперативні відповіді:

Якщо ви хочете надіслати зображення, яке зберігається на вашому сервері, це не простий запит POST, вам потрібно надіслати запит POST із типом вмісту multipart/form-data.
За допомогою curl ви можете зробити це, використовуючи опцію -F замість опції -d.
Вам також потрібно вказати за допомогою параметра це файл, використовуючи @ перед ім’ям файлу.
Якщо вам потрібна додаткова інформація, її задокументовано на сторінці довідки curl, доступній в Інтернеті: http://curl.haxx.se/docs/manpage.html

Ось командний рядок, який слід використовувати:

curl -X POST -F ‘auth={“key":"your_api_key”,”secret”:”your_api_secret"}’ -F ‘file=@the_file_to_send.png’ -F ‘params={“compression_type”:”lossy” }’ ‘ https://api.imagerecycle.com/v1/images

Ви можете використовувати параметри
– compression_type”:”lossy” або compression_type”:”lossless” для стиснення без втрат або з втратами
– “resize”:{“width”:100,”height”:100}, щоб за потреби змінити розмір зображення, можна вказати лише з або висотою

У цьому випадку запит буде таким:

curl -X POST -F ‘auth={“key”:”your_api_key”,”secret”:”your_api_secret”}’ -F ‘file=@the_file_to_send.png’ -F ‘params={“compression_type”:”lossy” ,”resize”:{“width”:100,”height”:100} }’ ‘ https://api.imagerecycle.com/v1/images

Таким чином, ми можемо написати сценарій PHP, наприклад, щоб оптимізувати локальні зображення (зменшити розмір файлу, не торкаючись розмірів, зображень або PDF ).

  1. Опублікуйте локальне зображення/pdf на сервер ImageRecycle за допомогою API POST /images
  2. Перейменуйте локальне зображення/pdf, щоб мати резервну копію
  3. Завантажте стислий файл із ImageRecycle

Ось знімок екрана, переконайтеся, що ви замінили app_key і app_seret.

Як стиснути зображення за допомогою ImageRecycle API (скрипт PHP)?

imagerecycle-стиснення-зображення

І сервер підтверджує цю оптимізацію на панелі [Історія оптимізації].

Як стиснути зображення за допомогою ImageRecycle API (скрипт PHP)?

історія стиснення зображень-зображень

У мене є test.jpg, оптимізований від 1,7 до 1,6 МБ. Це може бути небагато, і якщо я виберу інші налаштування, це може дати мені більше заощаджень (наприклад, змінити розмір). [Я напишу ще один пост про огляд ImageRecycle та інших конкурентів, таких як Imagefy.

Повний вихідний код:

#!/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);
    }
  } 

Потім ви запустили цикл bash для повторення всіх зображень/ PDF, що має забезпечити миттєве збереження.

Мені вдалося заощадити понад 2 ГБ місця на SSD на VPS за допомогою наведеного вище сценарію.

Приєднуйтеся до ImageRecycle і скористайтеся купоном IR-PARTNER-20, щоб отримати знижку 20% на перший рахунок, ексклюзивно для моїх читачів!

Джерело запису: helloacm.com

Цей веб -сайт використовує файли cookie, щоб покращити ваш досвід. Ми припустимо, що з цим все гаразд, але ви можете відмовитися, якщо захочете. Прийняти Читати далі