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');