ImageRecycle 提供了 API 用于优化压缩图片或者是PDF. ImageRecycle所支持的文件扩展名是: JPEG/JPG, GIF, BMP, PNG, PDF.
最近我想把VPS服务器上的图片 都压缩一下 (不改变尺寸). 于是可以通过 ImageRecycle 提供的 POST /images API
使用方法:
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 则需要使用以下的命令:
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脚本代码如下
#!/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)?
本文一共 289 个汉字, 你数一下对不对.上一篇: 怎样自动提交站点地图 (PHP 脚本)?
下一篇: 通过 ImageRecycle 节省了 服务器上SSD空间 2GB
扫描二维码,分享本文到微信朋友圈



你也担心空间大小了?我现在所有照片大小还不到300M.
我的 一共 50G 也不大