zhdanovartur/yii-easyimage

此包已被放弃且不再维护。未建议替代包。

Yii 框架扩展,用于实时轻松创建和缓存缩略图。

安装数: 18,607

依赖者: 0

建议者: 0

安全: 0

星标: 66

关注者: 11

分支: 27

开放问题: 16

类型:yii-extension

v1.0.7 2016-06-16 14:28 UTC

This package is not auto-updated.

Last update: 2020-01-16 23:17:48 UTC


README

您的项目中不需要为图像创建许多类型的缩略图。您可以直接在 视图 中创建缩略图。缩略图将自动缓存。很简单!

特性

  • 易于使用
  • 支持 GDImagick
  • 自动缩略图缓存
  • 缓存排序到子目录
  • 支持 Retina 显示
  • 基于 Kohana Image Library。

## 安装和配置 从 protected/extensions 中提取 EasyImage 文件夹

将以下内容添加到您的配置文件 components 部分

'components'=>array(
//...
  'easyImage' => array(
    'class' => 'application.extensions.easyimage.EasyImage',
    //'driver' => 'GD',
    //'quality' => 100,
    //'cachePath' => '/assets/easyimage/',
    //'cacheTime' => 2592000,
    //'retinaSupport' => false,
    //'isProgressiveJpeg' => false,
  ),

并将以下内容添加到 import 部分


'import' => array(
  //...
  'ext.easyimage.EasyImage'
),

## 使用 ### 实例化

$image = new EasyImage('/path/to/image.jpg');
$image->resize(100, 100);
$image->save('/full/path/to/thumb.jpg');

#### 参数

  • string $file 必需 - 图像文件路径
  • string $driver - 驱动器:GDImagick

ThumbOf

您可以直接在 视图 中创建缩略图

// Create and autocache
Yii::app()->easyImage->thumbOf('/path/to/image.jpg', array('rotate' => 90));

// or
Yii::app()->easyImage->thumbOf('image.jpg', array('rotate' => 90),  array('class' => 'image'));

// or
Yii::app()->easyImage->thumbOf('image.png',
  array(
    'resize' => array('width' => 100, 'height' => 100),
    'type' => 'jpg',
    'quality' => 60,
  ),
  $someModel->updatedAt //cache version modifier
);

// or
Yii::app()->easyImage->thumbOf('image.png',
  array(
    'resize' => array('width' => 100, 'height' => 100),
    'rotate' => array('degrees' => 90),
    'sharpen' => 50,
    'background' => '#ffffff',
    'type' => 'jpg',
    'quality' => 60,
  ));

注意。 此方法返回 CHtml::image()

#### 参数

  • string $file 必需 - 图像文件路径
  • array $params - 图像处理方法。见 方法
  • array $htmlOptions - CHtml::image() 的选项

ThumbSrcOf

Yii::app()->easyImage->thumbSrcOf('image.jpg', array('crop' => array('width' => 100, 'height' => 100)));

注意。 此方法返回缓存图像的路径。#### 参数

  • string $file 必需 - 图像文件路径
  • array $params - 图像处理方法。见 方法

## 方法 ### 调整大小

$image->resize(100, 100, EasyImage::RESIZE_AUTO);
Yii::app()->easyImage->thumbOf('image.jpg', array('resize' => array('width' => 100, 'height' => 100)));

#### 参数

  • integer $width - 新宽度
  • integer $height - 新高度
  • integer $master - 主尺寸:EasyImage::RESIZE_NONEEasyImage::RESIZE_WIDTHEasyImage::RESIZE_HEIGHTEasyImage::RESIZE_AUTOEasyImage::RESIZE_INVERSEEasyImage::RESIZE_PRECISE

### 裁剪

$image->crop(100, 100);
Yii::app()->easyImage->thumbOf('image.jpg', array('crop' => array('width' => 100, 'height' => 100)));

#### 参数

  • integer $width 必需 - 新宽度
  • integer $height 必需 - 新高度
  • mixed $offset_x = NULL - 从左侧的偏移量
  • mixed $offset_y = NULL - 从顶部的偏移量

### 缩放和裁剪

$image->scaleAndCrop(100, 100);
Yii::app()->easyImage->thumbOf('image.jpg', array('scaleAndCrop' => array('width' => 100, 'height' => 100)));

#### 参数

  • integer $width 必需 - 新宽度
  • integer $height 必需 - 新高度

### 旋转

$image->rotate(45);
Yii::app()->easyImage->thumbOf('image.jpg', array('rotate' => array('degrees' => 45)));
// or
Yii::app()->easyImage->thumbOf('image.jpg', array('rotate' => 45));

#### 参数

  • integer $degrees 必需 - 旋转度数:-360-360

### 翻转

$image->flip(EasyImage::FLIP_HORIZONTAL);
Yii::app()->easyImage->thumbOf('image.jpg', array('flip' => array('direction' => EasyImage::FLIP_HORIZONTAL)));
// or
Yii::app()->easyImage->thumbOf('image.jpg', array('flip' => EasyImage::FLIP_VERTICAL));

#### 参数

  • integer $direction 必需 - 方向:EasyImage::RESIZE_NONEEasyImage::RESIZE_WIDTH

### 锐化

$image->sharpen(20);
Yii::app()->easyImage->thumbOf('image.jpg', array('sharpen' => array('amount' => 20)));
// or
Yii::app()->easyImage->thumbOf('image.jpg', array('sharpen' => 20));

#### 参数

  • integer $amount 必需 - 锐化量(百分比):1-100

### 反射

// Create a 50 pixel reflection that fades from 0-100% opacity
$image->reflection(50);

// Create a 50 pixel reflection that fades from 100-0% opacity
$image->reflection(50, 100, TRUE);

// Create a 50 pixel reflection that fades from 0-60% opacity
$image->reflection(50, 60, TRUE);
Yii::app()->easyImage->thumbOf('image.jpg', array('reflection' => array('height' => 50)));
// or
Yii::app()->easyImage->thumbOf('image.jpg', array('reflection'));

注意。 默认情况下,反射将从顶部透明到底部不透明。#### 参数

  • integer $height = NULL - 反射高度
  • integer $opacity = 100 - 反射透明度:0-100
  • boolean $fade_in = FALSE - TRUE 淡入,FALSE 淡出

### 水印

$mark = new EasyImage('watermark.png');
$image->watermark($mark, TRUE, TRUE);
// or
$image->watermark('watermark.png', 20, 20);
Yii::app()->easyImage->thumbOf('image.jpg', array('watermark' => array('watermark' => 'mark.png', 'opacity' => 50)));

注意。 如果未指定偏移量,则使用轴心中心。如果指定了 TRUE 的偏移量,则使用轴心底部。#### 参数

  • mixed $watermark 必需 - 水印 EasyImage 实例或图像路径
  • integer $offset_x = NULL - 从左侧的偏移量
  • integer $offset_y = NULL - 从顶部的偏移量
  • integer $opacity = 100 - 水印透明度:1-100

### 背景

$image->background('#000', 50);
Yii::app()->easyImage->thumbOf('image.jpg', array('background' => array('color' => '#ffffff', 'opacity' => 50)));
// or
Yii::app()->easyImage->thumbOf('image.jpg', array('background' => '#ffffff'));

注意 这仅适用于具有 alpha 透明度的图像。####参数

  • string $color 必需 - 十六进制颜色值
  • integer $opacity = 100 - 背景透明度:0-100

###质量

Yii::app()->easyImage->thumbOf('image.jpg', array('quality' => 60)));
//not support: $image->quality(60);
// see $image->render(NULL, 60);

注意 这仅适用于 JPG 图像。####参数

  • integer 必需 - 图像质量:1-100

###类型

Yii::app()->easyImage->thumbOf('image.png', array('type' => 'jpg')));
//not support: $image->type('jpg');
// see $image->render('jpg');

#### 参数

  • string 必需 - 返回的图像类型:pngjpggif

###保存

// Save the image as a PNG
$image->save('image.png');

// Overwrite the original image
$image->save();

#### 参数

  • string $file = NULL - 新图像路径
  • integer $quality = 100 - 图像质量:1-100

###渲染


// Render the image at 50% quality
$data = $image->render(NULL, 50);

// Render the image as a PNG
$data = $image->render('png');

#### 参数

  • string $type = NULL - 返回的图像类型:pngjpggif
  • integer $quality = 100 - 图像质量:1-100