官网
http://image.intervention.io
安装
composer require intervention/image
用法
//导入autoload.php自动加载
require '../vendor/autoload.php';
//导入ImageManager类
use Intervention\Image\ImageManager;
//生成ImageManager对象
$manager = new ImageManager();
//创建新的图像资源
$img = $manager->make('image1.jpeg');
//调整当前图像大小
$img->resize(400,400);
//保存生成新图片
$image->save('2.jpg');
接口方法
创建新的图像资源
//创建新的图像资源
$img = $manager->make('image1.jpeg');
创建画布资源
//创建画布资源
$img = $manager->canvas(500, 500, '#fff');
操作图片
//调整当前图像大小
$img->resize(400,400);
//模糊效果 0-100 越大越模糊
$img->blur(80);
//图片亮度调节 -100至100 暗>亮
$img->brightness(-80);
//图片的三原色调整(red,green,blue)-100 至 100
$img->colorize(-50, 50, -50);
//图片对比度调整(-100 至 100)
$img->contrast(10);
//图片裁剪(x,y左边起点,width,height)
$img->crop(200, 200, 10, 10);
//水平翻转和垂直翻转
$img->flip('h');
$img->flip('v');
//填充颜色或图片
$img->fill('#cccccc');
$img->fill('walter.jpeg');
//按比例裁剪并重新设置宽高
$img->fit(200, 100);
$img->fit(200);
//图片gamma 光照效果调整
$img->gamma(20);
//图片灰色调
$img->greyscale();
//将当前图像调整为新高度,宽度比例缩放
$img->heighten(400);
//按width比例裁剪
$img->widen(300);
//插入其他图片
$img->insert('walter.jpeg');
//插入调整后的图片
$watermark = $manager->make('walter.jpeg')->resize(50,50)->opacity(20);
$img->insert($watermark, 'bottom-right',10,10);
//图片反色调整
$img->invert();
//设置最大颜色数
$img->limitColors(50, '#ff9900');
//图像的不透明度
$img->opacity(50);
//像素化图像(马赛克效果)
$img->pixelate(5);
//旋转图片
$img->rotate(-45);
//锐化图片 0-100
$img->sharpen(90);
画各种图形
//绘制单个像素
$img->pixel('#000000', 10, 10);
//画线
$img->line(10, 10, 200, 200, function ($draw) {
$draw->color('#000000');
});
//画圆形
$img->circle(100, 200, 200, function ($draw) {
$draw->background('#000033');//背景颜色
$draw->border(5, '#000');//边线大小和颜色
});
//画椭圆
$img->ellipse(100, 40, 100, 100, function ($draw) {
$draw->background('#0000ff');//背景颜色
$draw->border(1, '#ff0000');//边线大小和颜色
});
//画长方形
$img->rectangle(5, 5, 195, 195, function ($draw) {
$draw->background('rgba(255, 255, 255, 0.5)');
$draw->border(2, '#000');
});
//画多边形
$points = array(
40, 50, // Point 1 (x, y)
20, 240, // Point 2 (x, y)
60, 60, // Point 3 (x, y)
240, 20, // Point 4 (x, y)
50, 40, // Point 5 (x, y)
10, 10 // Point 6 (x, y)
);
$img->polygon($points, function ($draw) {
$draw->background('#0000ff');
$draw->border(1, '#ff0000');
});
获取图片相关信息
//获取图片宽度
$width = $img->width();
var_dump($width);exit;
//获取MIME类型
$mime = $img->mime();
var_dump($mime);exit;
//从当前图像读取IPTC元数据
$iptc = $img->iptc();
echo "<pre>";
var_dump($iptc);exit;
//获取图片高度
$height = $img->height();
var_dump($height);exit;
//图片编码(jpg,png,gif,data-url等)
$data = (string) $img->encode('data-url');
$html =<<<EOF
<img src="{$data}"/>
EOF;
echo $html;
//读取图片信息
$data = $img->exif();
echo "<pre>";
var_dump($data);
//获取图片大小
$size = $img->filesize();
var_dump($size);
int(719040)
输出图片资源
//手动输出到浏览器
header('Content-Type: image/jpeg');
echo $img->encode('jpeg');
//HTTP响应,输出到浏览器
echo $img->response();
//保存生成新图片
$image->save('2.jpg');
其他操作
//创建编码图像流
$stream = $img->stream('jpg', 60);
var_dump($stream);exit;
//将文本写入图像
$img->text('The quick brown fox jumps over the lazy dog.',50,50);
$text = "Write text to an image";
$img->text($text, 200, 100, function($font) {
$font->file("./Lato-Light.ttf");
$font->size(24);
$font->color('#fdf6e3');
$font->align('center');
$font->valign('top');
$font->angle(45);
});
//释放内存
$img->destroy();