复古/yii2-tinify

为 Yii2 框架提供的 Tinify API 封装

安装次数: 6,463

依赖: 0

建议: 0

安全: 0

星标: 2

关注者: 2

分支: 2

类型:yii2-extension

2.1.0 2018-03-12 18:59 UTC

This package is not auto-updated.

Last update: 2024-09-13 23:02:46 UTC


README

Tinify API

为 Yii2 框架提供的 Tinify API 封装。此扩展允许您在不损失质量的情况下调整和压缩图片。更多详细信息,您可以阅读官方 PHP API 文档。

Build Status Scrutinizer Code Quality Total Downloads Latest Stable Version Latest Unstable Version

安装

安装此扩展的首选方式是通过 composer

运行以下命令:

$ composer require vintage/yii2-tinify

或者将以下内容添加到您的 composer.json 文件的 require 部分:

"vintage/yii2-tinify": "~2.1"

require

使用

组件

  1. 在应用程序参数中配置 API 令牌,键为 tinify-api-token,或在 UploadedFile 组件中配置
  2. 使用 \vintage\tinify\UploadedFile 代替 \yii\web\UploadedFile

如果您需要保存一些元数据,例如 location,您可以按照以下方式配置 saveMetadata 选项

use vintage\tinify\UploadedFile;

$file = UploadedFile::getInstance($model, 'image');
$file->saveMetadata = UploadedFile::METADATA_LOCATION;
// or more items
$file->saveMetadata = [UploadedFile::METADATA_LOCATION, UploadedFile::METADATA_CREATION];

上传文件到 AWS S3 存储

  1. config/params-local.php 中配置 AWS S3 服务
use vintage\tinify\UploadedFileS3;

return [
    // ...
    UploadedFileS3::PARAM_KEY_AWS_ACCESS_KEY_ID         => '',
    UploadedFileS3::PARAM_KEY_AWS_SECRET_ACCESS_KEY     => '',
    UploadedFileS3::PARAM_KEY_S3_REGION                 => '',
    UploadedFileS3::PARAM_KEY_S3_BUCKET                 => '',
];
  1. 使用 \vintage\tinify\UploadedFileS3 代替 \vintage\tinify\UploadedFile
  2. 在方法调用中提供区域和存储桶名称
$file = UploadedFile::getInstance($model, 'image')->saveAs('image.jpg');

您还可以覆盖区域和存储桶

$file = UploadedFile::getInstance($model, 'image')
    ->setRegion('us-west-1')
    ->setPath('images-bucket/uploads') // path must be provided without slash in the end
    ->saveAs('image.jpg');

调整大小

您可以调整上传文件的尺寸

$file = \vintage\tinify\UploadedFile::getInstance($model, 'image');
$file->resize() // creates \vintage\tinify\components\TinifyResize object
    ->fit() // resize algorithm, also you can use scale() and cover()
    ->width(600) // set image width
    ->height(400) // set image height
    ->process(); // resize image
$file->saveAs('@webroot/uploads');

或调整现有图像的尺寸

(new \vintage\tinify\components\TinifyResize('@webroot/uploads/image.jpg'))
    ->scale()
    ->width(600)
    ->process();

命令行界面

  1. console/config/main.php 中配置控制台控制器
'controllerMap' => [
    // ...
    'tinify' => \vintage\tinify\cli\TinifyController::class,
],
  1. 在控制台中运行 ./yii tinify/<command>

测试

您可以使用 composer 命令运行测试

$ composer test

或者使用以下命令:

$ codecept build && codecept run

许可证

License

本项目在 BSD-3-Clause 许可证条款下发布。查看许可证