reSmush.it免费图片压缩API服务怎么用

插件指南2026年7月24日发布
6 0

reSmush.it 是一项免费的图片压缩 API 服务,目前除了上传文件大小限制外,个人使用没有其他任何使用限制,下面来看下如果不用插件的情况下,reSmush 的图片 API 要如何使用。

reSmush.it免费图片压缩API服务怎么用

基础调用

要发起标准调用并接收 JSON 响应,只需调用此 URL 并通过以下任一方式指定图片:

  • GET – 参数 img
  • POST – 参数 img
  • FILES – 二进制发送的文件

该 Web 服务将返回一个包含压缩图片详细信息的数组,如下所述。

API 输出

reSmush.it 可以返回以下格式的响应:

  • JSON(XML 已弃用)

输出数组包含各种信息,例如:

  • 源 URL(使用 GET 或 POST 方法时)(参数 src
  • 优化后图片的 URL(参数 dest
  • 原始文件大小(参数 src_size
  • 优化后文件大小(参数 dest_size
  • 优化百分比(参数 percent
  • 文件将从服务器删除的日期(参数 expires
  • 错误代码(参数 error
  • 错误描述(参数 error_log

压缩

自 V1.4.2 起,可以为 JPG 压缩指定优化级别。只需在 GET 方法中添加以下参数:

  • qlty,值为 0 到 100。默认值为 92。要获得良好的图片质量,该值应高于 90。

使用示例:

curl \
-H "User-Agent: MyCustomUserAgent/1.0" \
-H "Referer: https://example.com" \
"https://api.resmush.it/ws.php?img=https://resmush.it/wp-content/uploads/2024/02/testimage.jpg&qlty=95"

请注意,出于安全原因,在 API 请求中包含 user-agent 和网站地址是强制性的。

EXIF 数据

自 v1.4.21 起,EXIF 数据默认会被移除以减小文件大小。但是,可以通过在 GET 方法中指定以下参数在压缩期间保留这些数据:

  • exif,值为 true。默认值为 false

API 错误

以下是 Web 服务的各种错误列表:

  • 301 – 使用了旧的端点。请考虑改用 api.resmush.it。
  • 400 – 未提供图片 URL。
  • 401 – 无法从 URL 获取图片(通常是本地 URL)。
  • 402 – 无法从 $_FILES 获取图片(通常是本地 URL)。
  • 403 – 指定了禁止的文件格式。仅适用于 JPG、PNG、GIF、TIF 和 BMP 文件。
  • 404 – 请求了未知的方法或资源。
  • 501 – 内部错误,无法创建本地副本。
  • 502 – 提供的图片过大(必须小于 5 MB)。
  • 503 – 内部错误,无法连接到用于图片优化的 reSmush.it 服务器。
  • 504 – 内部错误,无法从 reSmush.it 服务器检索图片。

兼容性

reSmush.it 与旧的、已停止服务的 Yahoo Smush.it webservice 100% 兼容。你只需将旧的 API 调用 http://www.smushit.com/ysmush.it/ws.php?img= 替换为 reSmush.it webservice URL,其工作方式与 ?img= 完全相同。reSmush.it 已被验证可与 Drupal 模块 ImageAPI Optimize(开发版)和官方 WordPress reSmush.it Image Optimizer 插件完美配合。

实现示例 (PHP)

#1 简单的 PHP 请求(使用 GET 和 JSON 响应)

<?php 
define('WEBSERVICE', 'http://api.resmush.it/ws.php?img='); 
$s = 'http://www.mywebsite/image.jpg'; 
// 创建流上下文以包含自定义标头 
$context = stream_context_create([ 
    'http' => [
        'method'  => 'GET',
        'header'  => "User-Agent: MyCustomUserAgent/1.0\r\n" .
                     "Referer: https://example.com\r\n"
    ]
]);
// 使用自定义标头获取数据
$o = json_decode(file_get_contents(WEBSERVICE . $s, false, $context));
if (isset($o->error)) {
    die('Error: ' . $o->error);
}
// 输出优化后图片的 URL
echo $o->dest;

#2 PHP 请求(直接向 API 发送文件)。推荐方法!

<?php 
$file = '/path/to/myfile.jpg'; 
$mime = mime_content_type($file); 
$info = pathinfo($file); 
$name = $info['basename']; 
$output = new CURLFile($file, $mime, $name); 
$data = array( 
    "files" => $output,
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://api.resmush.it/?qlty=80');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_USERAGENT, 'MyCustomUserAgent/1.0');
curl_setopt($ch, CURLOPT_REFERER, 'https://example.com');
$result = curl_exec($ch);
if (curl_errno($ch)) {
    $result = curl_error($ch);
}
curl_close($ch);
var_dump($result);

请注意,出于安全原因,在 API 请求中包含 user-agent 和网站地址是强制性的。

连接问题?

如果你遇到任何连接问题或错误,请将官方的 IP 加入白名单,然后重试:

  • 46.4.70.115
  • 176.9.77.187
  • 136.243.103.55
  • 213.239.204.84
  • 144.76.74.20
  • 65.109.126.11
  • 135.181.240.104

如需包含生成 WebP 和生成 AVIF 的更高级图片优化 API,需要考虑另一款 ShortPixel API。

© 版权声明

暂无评论

暂无评论...