ImageRecycle 提供了 API 用于优化压缩图片或者是PDF. ImageRecycle所支持的文件扩展名是: JPEG/JPG, GIF, BMP, PNG, PDF.
最近我想把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优化:
- 通过 POST 方法把文件上传到 ImageRecycle 服务器
- 存一份原始文件 用于备份
- 从ImageRecycle 上下载优化过后的文件
以下是这脚本的运行效果. 记得要替换掉 app_key 和 app_secret 字符串:
登陆到 ImageRecycle 之后就可以从优化历史记录中证实 已经成功了.
从这个例子中 图片优化大小从 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 个汉字, 你数一下对不对.loading...
上一篇: 怎样自动提交站点地图 (PHP 脚本)?
下一篇: 通过 ImageRecycle 节省了 服务器上SSD空间 2GB
扫描二维码,分享本文到微信朋友圈
你也担心空间大小了?我现在所有照片大小还不到300M.
我的 一共 50G 也不大