复古 / yii2-tinify
为 Yii2 框架提供的 Tinify API 封装
2.1.0
2018-03-12 18:59 UTC
Requires
- tinify/tinify: ~1.1
- yiisoft/yii2: ~2.0.0
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-13 23:02:46 UTC
README
Tinify API
为 Yii2 框架提供的 Tinify API 封装。此扩展允许您在不损失质量的情况下调整和压缩图片。更多详细信息,您可以阅读官方 PHP API 文档。
安装
安装此扩展的首选方式是通过 composer。
运行以下命令:
$ composer require vintage/yii2-tinify
或者将以下内容添加到您的 composer.json
文件的 require
部分:
"vintage/yii2-tinify": "~2.1"
require
使用
组件
- 在应用程序参数中配置 API 令牌,键为
tinify-api-token
,或在UploadedFile
组件中配置 - 使用
\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 存储
- 在
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 => '', ];
- 使用
\vintage\tinify\UploadedFileS3
代替\vintage\tinify\UploadedFile
- 在方法调用中提供区域和存储桶名称
$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();
命令行界面
- 在
console/config/main.php
中配置控制台控制器
'controllerMap' => [ // ... 'tinify' => \vintage\tinify\cli\TinifyController::class, ],
-
在控制台中运行
./yii tinify/<command>
测试
您可以使用 composer 命令运行测试
$ composer test
或者使用以下命令:
$ codecept build && codecept run
许可证
本项目在 BSD-3-Clause 许可证条款下发布。查看许可证。