tooljoom/imageoptimizer

使用免费的'resmush.it'服务优化图片。

1.0.2 2020-06-29 16:08 UTC

This package is auto-updated.

Last update: 2024-09-29 04:36:59 UTC


README

License: MIT

使用免费的 'reSmush.it' 服务优化图片。

安装

Composer

运行

composer require tooljoom/imageoptimizer

手动

包含以下文件

require_once '/path/to/ImageOptimizer/requires.php';

使用方法

方法1

// Initialize the library.
$imageOptimizer = new \ToolJoom\ImageOptimizer\ImageOptimizer();

// Either provide a local image...
$image = '/path/to/image.png';

// ... or provide a remote image.
$image = 'http://path.to/image.png';

// The path to save the optimized image.
$saveAs = '/path/to/optimized_image.png';

// Make the call to the 'reSmush.it' service and save the image locally.
$result = $imageOptimizer->optimizeAndRetrieve($image, $saveAs);

上述方法在成功时将返回优化后图片的路径/文件名,在失败时返回 false

在失败的情况下,可以使用 getDebugData() 方法检索错误代码和描述。

// Make the call to the 'reSmush.it' service and save the image locally.
$result = $imageOptimizer->optimizeAndRetrieve($image, $saveAs);

if (false === $result) {
    $debugData = $imageOptimizer->getDebugData();
    
    echo $debugData['method']; // Returns 'optimize' or 'retrieve', depending in which step the error occured
    echo $debugData['errorCode'];
    echo $debugData['errorDescription'];
}

方法2

步骤1) 获取优化后的图片详情

// Initialize the library.
$imageOptimizer = new \ToolJoom\ImageOptimizer\ImageOptimizer();

// Either provide a local image...
$image = '/path/to/image.png';

// ... or a remote image.
$image = 'http://path.to/image.png';

// Make the call to the 'reSmush.it' service.
$response = $imageOptimizer->optimize($image);

可以通过以下方法检索响应信息

$response->getIsSuccessful();

返回一个布尔值,指示调用是否成功。

$response->getImageOriginal();

在成功时返回原始图片的URL,在失败时返回 null

$response->getImageOptimized();

在成功时返回优化后图片的URL,在失败时返回 null

$response->getSizeOriginal();

在成功时返回原始图片的大小,在失败时返回 null

$response->getSizeOptimized();

在成功时返回优化后图片的大小,在失败时返回 null

$response->getExpirationDate();

在成功时返回优化后图片URL的过期日期,在失败时返回 null

$response->getErrorCode();

在失败时返回错误代码,在成功时返回 null

$response->getErrorDescription();

在失败时返回错误描述,在成功时返回 null

步骤2) 检索优化后的图片

// The path to save the optimized image.
$saveAs = '/path/to/optimized_image.png';

// Retrieve the optimized image.
if ($response->getIsSuccessful()) {
    $result = $imageOptimizer->retrieve($response->getImageOptimized(), $saveAs);
}

上述方法在成功时将返回优化后图片的路径/文件名,在失败时返回 false

在失败的情况下,可以使用 getDebugData() 方法检索错误代码和描述。

// Retrieve the optimized image.
if ($response->getIsSuccessful()) {
    $result = $imageOptimizer->retrieve($response->getImageOptimized(), $saveAs);

    if (false === $result) {
        $debugData = $imageOptimizer->getDebugData();

        echo $debugData['errorCode'];
        echo $debugData['errorDescription'];
    }
}

覆盖默认配置

可以通过向库构造函数提供自定义配置数组来覆盖默认配置。

$customConfiguration = [
    'client' => [
        'timeout' => 10
    ],
    'image'  => [
        'quality => 100
    ]
];

// Initialize the library with (partially) custom configuration.
$imageOptimizer = new \ToolJoom\ImageOptimizer\ImageOptimizer($customConfiguration);

默认配置数组位于 config/config.php 文件中。

注意

  • 要替换原始图片为优化后的图片,使用相同的路径/文件名 (仅适用于本地图片)

      $image  = '/path/to/image.png';
      $result = $imageOptimizer->optimizeAndRetrieve($image, $image);
    

    默认情况下,将在原始图片旁边创建一个扩展名为 .bak 的备份 (例如 /path/to/image.png.bak)。要跳过备份创建,请在 optimizeAndRetrieve() 方法中添加一个值 false 的第三个参数。同样也适用于 retrieve() 方法。

      $image  = '/path/to/image.png';
      $result = $imageOptimizer->optimizeAndRetrieve($image, $image, false);
    
  • 根据配置,可以自动向目标图片文件名添加前缀和/或后缀。

    添加前缀

      $customConfiguration = [
          'image'  => [
              'prefix => 'prefix_'
          ]
      ];
        
      $saveAs = '/path/to/image.png';
    

    生成的文件名将是 /path/to/prefix_image.png

    添加后缀

      $customConfiguration = [
          'image'  => [
              'suffix => '_suffix'
          ]
      ];
     
      $saveAs = '/path/to/image.png';
    
    

    生成的文件名将是 /path/to/image_suffix.png

    同时添加前缀和后缀

      $customConfiguration = [
          'image'  => [
              'prefix => 'prefix_',
              'suffix => '_suffix'
          ]
      ];
     
      $saveAs = '/path/to/image.png';
    
    

    生成的文件名将是 /path/to/prefix_image_suffix.png

许可证

版权所有 © 2020 ToolJoom

在此特此授予任何获得此软件及其相关文档文件(以下简称“软件”)副本的任何人免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供者提供软件的人员这样做,前提是

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,还是包括但不限于对适销性、特定用途适用性和非侵权的保证。在任何情况下,作者或版权持有人均不对任何索赔、损害或其他责任负责,无论该责任是基于合同行为、侵权行为或其他,无论该责任源于、产生于或与该软件或软件的使用或其他方式有关。