✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

Как сжимать изображения с помощью ImageRecycle API (скрипт PHP)?

58

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

Как сжимать изображения с помощью ImageRecycle API (скрипт PHP)?

изображениеперерабатывать

Вот документация API для добавления нового изображения. ПОСТ/изображения

Пример:

  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" «изменить размер»: {«ширина»: 100, «высота»: 100} }’ ‘ https://api.imagerecycle.com/v1/images

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

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

Вот снимок экрана, убедитесь, что вы заменили app_key и app_seret.

Как сжимать изображения с помощью ImageRecycle API (скрипт PHP)?

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

И сервер подтверждает эту оптимизацию из панели [История оптимизации].

Как сжимать изображения с помощью ImageRecycle API (скрипт PHP)?

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

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