it-for-free / yii-image-resize-on-the-fly
yii yii2 动态调整图片大小并缓存
Requires
- php: >=5.3.0
- it-for-free/rusphp: v2.0.2
This package is auto-updated.
Last update: 2024-08-26 23:13:12 UTC
README
在线裁剪图片 当从浏览器请求时。
由于涉及图像处理,以下是一个如何使用此模块的示例。
安装
使用composer安装
composer require it-for-free/yii-image-resize-on-the-fly:~v1.0.0
使用(Usage)
在视图中使用示例
<img src='/image?path=' . $model->img . '&format=100x100'>
在上面的示例中,使用了GET方法,并传了两个参数
-
$model->img是您的图像路径,通常是存储在数据库中的文件路径,在我们的例子中是$model->img,例如可能存储路径photos/someimage.jpg,其余路径由模块中定义的别名提供。如何定义它将在下面展示,同时请注意,在photos/目录前没有/,它由模块添加。 -
100x100是裁剪图片格式的字符串,在我们的例子中是&format=100x100,可能存在多种格式,详细文档可以在这里查看 这里。
模块配置
在配置模块之前,需要设置一个别名,之后它将被定义为 @uploadPath。
可以在文件 common/config/bootstrap.php 中设置别名
示例
Yii::setAlias('@uploadPath', dirname(dirname(__DIR__)) . '/frontend/web/uploads');
接下来,在应用程序的配置文件中(例如:common/config/main.php)在 modules 部分写入以下内容
use ItForFree\YiiImageResizeOnTheFly\Image; .... .... 'modules' => [ 'image' => [ 'class' => Image::class, 'baseUploadPath' => '@uploadPath' ], ],
从上面的配置中,我们可以看到设置模块公共属性的过程,前面提到的 baseUploadPath 属性是模块需要的,作为值传递的是别名 @uploadPath,它应该指向保存图像的路径。
在yii/helpers/Html::img() 上使用包装器
存在一个包装器,使得在视图中使用模块更加方便。函数 imgrsc() 的基本形式
echo imgrsc($path, $format, $options);
函数 imgrsc() 接受2个必需参数和1个可选参数
$path是相对@uploadPath的图像路径。$format是图像格式,应该按照以下方式指定,可以在这里查看 这里。$options是可选的原始参数yii/helpers/Html::img()。
实际调用示例
echo imgrsc($model->img, '100x100');