use iry\image\Image;
$waterMark = '/img/watermark.png';
//mage::setLib('Gd/ImageMagick');//可选 默认自动检测
//得到对象的示例
$img = Image::src('/img/test-img.jpg'); //也可以直接 new Gd('file'); 或者 new ImageMagick('file');
//重置图片尺寸
$img->resize(800,800);
//添加水印 lt左上,rt:右上 ,l:左中,t:上中.... lt/rt/lb/rb/l/r/t/b/c | [x,y]
$img->watermark($waterMark,'c')->watermark($waterMark,'lt',60,60)->watermark($waterMark,'rb',120,120);
//添加文本
//$img->addText('text2',14);
//图片旋转90度
$img->rotate(90);
//拉伸
$img->stretch(500,500,true);
//保存结果
$r = $img->save('{file_dir}/test.dist.jpg');
//添加文字
$img->addText('left & top 左上',20,'lt','....' )
->addText('right & bottom 右下',20,'rb',$font );
//支持连贯写法
//$img->resize(800,800)->rotate(90)->watermark('....')->....->save('保存');
静态方法
@param: 文件路径
@return: [宽,高]
// 静态方法
Image::getImageInfo($file);
//@return
[
"width" =>'宽',
"height" =>'高',
"type" =>'文件类型',
"suf"=>'文件后缀',
"size" =>'文件大小',
"mime" =>'mime'
];
/**
* resize
* @param int $width 宽
* @param int $height 高
* @return $this
*/
Image::src('file')->resize(400,500);
/**
* 坐标
* @param int $x x 坐标 支持"数字"和"*%"
* @param int $y y 坐标 支持"数字"和"*%"
* ----------
* 尺寸
* @param int $w WIDTH/裁剪后的宽 支持"数字"和"*%"
* @param int $h HEIGHT/裁剪后的高 支持"数字"和"*%"
*
* @return $this
*/
Image::src('file')->crop(0,0,400,500);
/**
* 旋转图片
* @param int $angle 旋转角度
* @param int $bgColor 旋转后空余背景 可选
*/
Image::src('file')->rotate(30);
Image::src('file')->rotate(30,'#ffffff')->rotate(60);
/**
* @param string $text 写入文字
* @param $textSize GD1为像素 GD2 单位为磅(pound)
* @param string|[] $position 写入文字起点坐标或者位置
* 位置: lt/rt/lb/rb/t/b/l/r/c (lt leftTop 左上) (t : 上中) 坐标:[x,y]
* @param $fontFile 字体文件
* @param string $color
* @return $this
*/
Image::src('file.jpg')->addText($text,12,'lt',$fontFile)
$fontFile 字体文件:使用绝对路径
需要自己去下载、也可以从的 Windows、Mac、Linux字体安装目录拷贝字体到你的项目中
windows(C:\Windows\Fonts)、Mac(/System/Library/Fonts)
注:部分字体可能需要商用授权(请自行联系字体发布方)
常见字体下载:
Han Serif 下载地址
Han Serif 简体中文
/**
* @param string $watermarkFile
* @param string $position lb/lt/rb/rt/l/r/t/b/c
* l:left, r:right , t:top ,b:bottom , c:Center
*
* 强制水印的大小
* @param int|string $width 水印缩放至多宽? 默认100%(水印的实际大小)
* @param int|string $height 水印缩放至多高? 默认100%(水印的实际大小)
*
* @return ImageMagick
*/
Image::src('file.jpg')->watermark('/watermark.png','rb');//位置:右下角
Image::src('file.jpg')->watermark('/watermark.png','c', 60,60); //位置:中心 水印大小,强制等比缩放到60x60
/**
* 保存
* @param string $dest 目标路径
* @param bool $rmSrc 是否移除原图 可选 默认:false
* @return string|false filename|false
*/
Image::src('file')->resize(400,500)->save('test.png',true);
//save 方法第一个参数 可以使用变量
Image::src('file')->resize(400,500)->save('{file_dir}/test_result.{file_ext}');
save方法第一个参数(目标文件)可以使用以下变量
- {file_dir}: 原文件所在的目录,
- {file_ext}: 原文件扩展名称,
- {file_name}: 原文件名称(不包含后缀),
- {file_full_name}: 原文件名称