assayer-pro/yii2-easy-thumbnail-image-helper

Yii2 实时创建和缓存缩略图的辅助工具

1.2.0 2018-03-08 07:27 UTC

This package is auto-updated.

Last update: 2024-09-14 05:21:52 UTC


README

Yii2 实时创建和缓存缩略图的辅助工具。

安装

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

  • 运行以下命令
php composer.phar require "assayer-pro/yii2-easy-thumbnail-image-helper" "*"

或者

"assayer-pro/yii2-easy-thumbnail-image-helper" : "*"

将以下内容添加到您应用程序的 composer.json 文件的要求部分

  • 在应用程序配置文件的 components 部分添加一个新组件(可选),例如
'components' => [
    'thumbnail' => [
        'class' => 'assayerpro\thumbnail\EasyThumbnailImage',
        'cacheAlias' => 'assets/gallery_thumbnails',
        'quality' => 90,
    ],
],

如果需要为应用程序设置全局辅助器设置,这是必要的。

使用方法

例如

use assayerpro\thumbnail\EasyThumbnailImage;

echo Yii::$app->thumbnail->thumbnailImg(
    $model->pictureFile,
    50,
    50,
    EasyThumbnailImage::THUMBNAIL_OUTBOUND,
    ['alt' => $model->pictureName]
);

或者

use assayerpro\thumbnail\EasyThumbnailImage;

echo Yii::$app->thumbnail->thumbnailImg(
    'http://...',
    50,
    50,
    EasyThumbnailImage::THUMBNAIL_OUTBOUND,
);

如果缩略图尺寸之一设置为 null,则另一个尺寸将根据原始图像的宽高比自动计算。请注意,在这种情况下,计算出的缩略图尺寸可能会根据源图像而有所不同。

use assayerpro\thumbnail\EasyThumbnailImage;

echo Yii::$app->thumbnail->thumbnailImg(
    $model->pictureFile,
    50,
    null
);

如果指定了两个尺寸,则生成的缩略图将正好是指定的宽度和高度。如何实现取决于模式。

有关其他功能,请参阅源代码。

如果您想自己处理转换缩略图时出现的错误,请创建自己的类,并从 EasyThumbnailImage 继承。在您的类中,只需替换受保护的错误处理方法。例如

class ThumbHelper extends \assayerpro\thumbnail\EasyThumbnailImage
{

    protected static function errorHandler($error, $filename)
    {
        if ($error instanceof \assayerpro\thumbnail\FileNotFoundException) {
            return \yii\helpers\Html::img('@web/images/notfound.png');
        } else {
            $filename = basename($filename);
            return \yii\helpers\Html::a($filename,"@web/files/$filename");
        }
    }
}