it-for-free/yii-image-resize-on-the-fly

yii yii2 动态调整图片大小并缓存

v1.0.0 2018-12-24 14:43 UTC

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方法,并传了两个参数

  1. $model->img 是您的图像路径,通常是存储在数据库中的文件路径,在我们的例子中是 $model->img,例如可能存储路径 photos/someimage.jpg,其余路径由模块中定义的别名提供。如何定义它将在下面展示,同时请注意,在photos/目录前没有/,它由模块添加。

  2. 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个可选参数

  1. $path 是相对 @uploadPath 的图像路径。
  2. $format 是图像格式,应该按照以下方式指定,可以在这里查看 这里
  3. $options 是可选的原始参数 yii/helpers/Html::img()

实际调用示例

echo imgrsc($model->img, '100x100');