通过 ImageRecycle API 来进行图片或者PDF压缩


ImageRecycle 提供了 API 用于优化压缩图片或者是PDF. ImageRecycle所支持的文件扩展名是: JPEG/JPG, GIF, BMP, PNG, PDF.

imagerecycle 通过 ImageRecycle API 来进行图片或者PDF压缩 LINUX 互联网 技术 折腾 程序设计

imagerecycle

最近我想把VPS服务器上的图片 都压缩一下 (不改变尺寸). 于是可以通过 ImageRecycle 提供的 POST /images API

使用方法:

1
2
3
4
5
  curl -X POST 
    -d 'auth={"key":"your_api_key","secret":"your_api_secret"}' 
    -d 'url=https://uploadbeta.com/share-image/2xx' 
    -d 'params={"compression_type":"lossy"}' 
    'https://api.imagerecycle.com/v1/images'
  curl -X POST 
	-d 'auth={"key":"your_api_key","secret":"your_api_secret"}' 
	-d 'url=https://uploadbeta.com/share-image/2xx' 
	-d 'params={"compression_type":"lossy"}' 
	'https://api.imagerecycle.com/v1/images'

如果是 需要上传 本地图片或者PDF 则需要使用以下的命令:

1
2
3
4
5
  curl -X POST 
    -F 'auth={"key":"your_api_key","secret":"your_api_secret"}' 
    -F 'file=@本地文件.jpg' 
    -F 'params={"compression_type":"lossy"}' 
    'https://api.imagerecycle.com/v1/images'
  curl -X POST 
	-F 'auth={"key":"your_api_key","secret":"your_api_secret"}' 
	-F 'file=@本地文件.jpg' 
	-F 'params={"compression_type":"lossy"}' 
	'https://api.imagerecycle.com/v1/images'

通过 PHP 脚本, 我们可以使用 ImageRecycle 来进行图片或者PDF优化:

  1. 通过 POST 方法把文件上传到 ImageRecycle 服务器
  2. 存一份原始文件 用于备份
  3. ImageRecycle 上下载优化过后的文件

以下是这脚本的运行效果. 记得要替换掉 app_key 和 app_secret 字符串:

imagerecycle-image-compression 通过 ImageRecycle API 来进行图片或者PDF压缩 LINUX 互联网 技术 折腾 程序设计

imagerecycle-image-compression

登陆到 ImageRecycle 之后就可以从优化历史记录中证实 已经成功了.

imagerecycle-image-compression-history 通过 ImageRecycle API 来进行图片或者PDF压缩 LINUX 互联网 技术 折腾 程序设计

imagerecycle-image-compression-history

从这个例子中 图片优化大小从 1.7 M 减少到 1.6M 可能看起来不是很多的原因是尺寸没有作改变.

完整的PHP脚本代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/php
<?php
// 作者:  https://helloacm.com
  $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\"}' 'https://api.imagerecycle.com/v1/images'";
    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 "下载 $optimized_url ...\n";
      $optimized_content = file_get_contents($optimized_url);
      echo "保存 $img ...\n";
      file_put_contents($img, $optimized_content);      
    }
  }  
  
  foreach (array_slice($argv, 1) as $img) {
    if (!file_exists($img)) {
      echo $img . " 没有找到.\n";
    } else {
      ImageRecycle($img, $key, $secret);
    }
  } 
#!/usr/bin/php
<?php
// 作者:  https://helloacm.com
  $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\"}' 'https://api.imagerecycle.com/v1/images'";
    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 "下载 $optimized_url ...\n";
      $optimized_content = file_get_contents($optimized_url);
      echo "保存 $img ...\n";
      file_put_contents($img, $optimized_content);      
    }
  }  
  
  foreach (array_slice($argv, 1) as $img) {
    if (!file_exists($img)) {
      echo $img . " 没有找到.\n";
    } else {
      ImageRecycle($img, $key, $secret);
    }
  } 

然后可以写个BASH脚本把所有本地文件都给优化了.

加入ImageRecycle 并且可以使用 优惠码IR-PARTNER-20 来获得 20% 的购买.

英文: How to Compress Images using ImageRecycle API (The PHP Script)?

GD Star Rating
loading...
本文一共 289 个汉字, 你数一下对不对.
通过 ImageRecycle API 来进行图片或者PDF压缩. (AMP 移动加速版本)
上一篇: 怎样自动提交站点地图 (PHP 脚本)?
下一篇: 通过 ImageRecycle 节省了 服务器上SSD空间 2GB

扫描二维码,分享本文到微信朋友圈
83c0120a0dfe804cfcc45a59da428440 通过 ImageRecycle API 来进行图片或者PDF压缩 LINUX 互联网 技术 折腾 程序设计

2 条评论

评论