Intervention Image 图片套件图片处理
Categories:
原始图片
resize() 图片缩放
// 建立图片实例
$img = Image::make('public/foo.jpg');
// 重新调整图片宽高至 300x200
$img->resize(300, 100);
resize to 300x100
// 宽度调整至 300px,高度不变
$img->resize(300, null);
resize to 300xnull
// 高度调整至 200px,宽度不变
$img->resize(null, 100);
resize to nullx100
// 固定宽 300px,高度等比例缩放
$img->resize(300, null, function ($constraint) {
$constraint->aspectRatio();
});
resize to 300xnull aspectRatio
// 固定高 100px,宽度等比例缩放 width)
$img->resize(null, 100, function ($constraint) {
// 等比例缩放
$constraint->aspectRatio();
});
resize to nullx100 aspectRatio
// 固定宽 300px, 高 100px,宽度等比例缩放
$img->resize(300, 100, function ($constraint) {
// 等比例缩放:若两个宽高比例与原图不符的话,会以最短边去做等比例缩放
$constraint->aspectRatio();
});
resize to 300x100 aspectRatio
$img->resize(null, 1000, function ($constraint) {
// 等比例缩放
$constraint->aspectRatio();
// 若图片较小,不需要将图片放大
$constraint->upsize();
});
resize to nullx1000 aspectRatio & upsize
crop() 图片裁切
// 建立图片实例
$img = Image::make('public/foo.jpg');
// 裁切图片宽度 100px,高度 300px,从图片中间为中心点开始裁切
$img->crop(100, 300);
$img->crop(100, 300);
// 从图片左上角为原点 0,0,然后裁切图片宽度 100px,高度 300px
$img->crop(100, 300, 0, 0);
$img->crop(100, 300);
// 从图片左上角为原点,往右位移 35px,往下位移 75px,然后裁切图片宽度 100px,高度 300px
$img->crop(100, 300, 35, 75);
$img->crop(100, 300, 35, 75);
blur() 模煳
可以指定模煳的强度,数字介于 0~100 之间,预设为 1
// 建立图片实例
$img = Image::make('public/foo.jpg');
// 轻微的模煳图片(预设强度 1)
$img->blur();
$img->blur();
// 指定模煳的强度
$img->blur(15);
$img->blur(15);
brightness() 亮度
可以指定增加或减少图片的亮度多少,亮度数值介于 -100 ~ 100 之间
// 建立图片实例
$img = Image::make('public/foo.jpg');
// 增加图片亮度 35
$img->brightness(35);
$img->brightness(35);
// 减低图片亮度 -5,再减低亮度 -25
$img->brightness(-5)->brightness(-25);
$img->brightness(-5)->brightness(-25);
colorize() 颜色增减
颜色可以带入 red, green, blue 三种颜色增减的量,范围为 -100~100,0 则为不变
// 建立图片实例
$img = Image::make('public/foo.jpg');
// 红色 -100
$img->colorize(-100, 0, 0);
$img->colorize(-100, 0, 0);
// 红色 100
$img->colorize(100, 0, 0);
$img->colorize(100, 0, 0);
// 绿色 30
$img->colorize(0, 30, 0);
$img->colorize(0, 30, 0);
contrast() 对比
对比的数字介于 -100~100
// 建立图片实例
$img = Image::make('public/foo.jpg');
// 增加对比 65
$img->contrast(65);
$img->contrast(65);
// 增加对比 100
$img->contrast(100);
$img->contrast(100);
// 减少对比 35
$img->contrast(-35);
$img->contrast(-35);
encode() 编码
- jpg — return JPEG encoded image data
- png — return Portable Network Graphics (PNG) encoded image data
- gif — return Graphics Interchange Format (GIF) encoded image data
- tif — return Tagged Image File Format (TIFF) encoded image data
- bmp — return Bitmap (BMP) encoded image data
- ico — return ICO encoded image data
- psd — return Photoshop Document (PSD) encoded image data
- webp — return WebP encoded image data
- data-url — encode current image data in data URI scheme (RFC 2397)
// 将 png 图片转为 jpg,并使用 quality 75 的图片
$jpg = (string) Image::make('public/foo.png')->encode('jpg', 75);
// 将 png 图片转为网址 base64 的图片
$data = (string) Image::make('public/bar.png')->encode('data-url');
flip() 翻转
// 建立图片实例
$img = Image::make('public/foo.jpg');
// 垂直翻转
$img->flip('v');
$img->flip(‘v’);
// 水平翻转
$img->flip('h');
$img->flip(‘h’);
// 水平+垂直翻转
$img->flip('h')->flip('v');
$img->flip(‘h’)->flip(‘v’);
fit() 裁切(crop) + 图片缩放(resize)
// 建立图片实例
$img = Image::make('public/foo.jpg');
// 图片固定图片比例,缩放至 300x100,并将将超过 300x100 的部分裁切掉
$img->fit(300,100);
$img->fit(300,100);
// 图片使用 300x300 的 1:1 比例,将图片填满
$img->fit(300);
$img->fit(300,300);
$img->fit(300);
// 图片固定图片比例,缩放至 1200x1000,并将将超过 1200x1000 的部分裁切掉,且避免图片放大超过原本图片尺寸
$img->fit(1200, 1000, function ($constraint) {
// 避免图片放大超过原本尺寸
$constraint->upsize();
});
$img->fit(1200, 1000); upsize()
gamma() Gamma 校正
// 建立图片实例
$img = Image::make('public/foo.jpg');
// Gamma 校正 1.6
$img->gamma(1.6);
$img->gamma(1.6);
// Gamma 校正 1/2.2
$img->gamma(1 / 2.2);
$img->gamma(1 / 2.2);
greyscale() 灰阶
// 建立图片实例
$img = Image::make('public/foo.jpg');
// 灰阶
$img->greyscale();
$img->greyscale();
heighten() 重新缩放图片,以图片高度为主,等比例缩放
// 图片高度缩放至 100px,并依照原本图片比例缩放
$img = Image::make('public/foo.jpg')->heighten(100);
$img->heighten(100);
// 图片高度缩放至 1000px,并依照原本图片比例缩放,不将原本图片放大
$img = Image::make('public/foo.jpg')->heighten(1000, function ($constraint) {
// 若图片较小,不需要将图片放大
$constraint->upsize();
});
$img->heighten(1000); upsize()
widen() 重新缩放图片,以图片宽度为主,等比例缩放
// 图片宽度缩放至 100px,并依照原本图片比例缩放
$img = Image::make('public/foo.jpg')->widen(100);
$img->widen(100);
// 图片宽度缩放至 1000px,并依照原本图片比例缩放,不将原本图片放大
$img = Image::make('public/foo.jpg')->widen(1000, function ($constraint) {
$constraint->upsize();
});
$img->widen(1000); upsize()
insert() 插入浮水印图片
// 建立图片实例
$img = Image::make('public/foo.jpg');
// 直接插入图片,以左上角为起点开始插入图片
$img->insert('public/copyright.png');
$img->insert(‘public/copyright.png’);
// 插入图片至中央
$watermark = Image::make('public/watermark.png');
$img->insert($watermark, 'center');
$img->insert($watermark, ‘center’);
// 插入图片,从右下角起点,往左 10px,往上 50px
$watermark = Image::make('public/watermark.png');
$img->insert('public/watermark.png', 'bottom-right', 10, 50);
$img->insert(‘public/watermark.png’, ‘bottom-right’, 10, 50);
invert() 反转颜色
// 反转图片颜色
$img = Image::make('public/foo.jpg')->invert();
$img->invert();
limitColors() 限制显示颜色数量
// 建立图片实例
$img = Image::make('public/foo.png');
// 限制颜色数量为 100
$img->limitColors(100);
$img->limitColors(100);
// 限制颜色数量为 30
$img->limitColors(30);
$img->limitColors(30);
line() 画线
必须要使用 Imagick 函式库
// 建立图片实例
$img = Image::make('public/foo.png');
// 画一条 5px 的红线,从座标 (10,10) 到 (195, 195)
$img->line(10, 10, 195, 195, function ($draw) {
$draw->color('#f00');
$draw->width(5);
});
$img->line(10, 10, 195, 195) color #f00 width5
mask() 遮罩
// 建立图片实例
$img = Image::make('public/foo.jpg');
// 建立图片遮罩,有颜色的部分会为遮罩
$img->mask('public/mask.png');
$img->mask(‘public/mask.png’);
// 建立图片遮罩,有颜色且不为透明的部分会为遮罩
$img->mask('public/alpha.png', true);
$img->mask(‘public/alpha.png’, true);
pixelate() 将图片指定像素宽度像素化
// 建立图片实例
$img = Image::make('public/foo.jpg');
// 像素化效果:5px
$img->pixelate(5);
$img->pixelate(5);
// 像素化效果:12px
$img->pixelate(12);
$img->pixelate(12);
// 像素化效果:30px
$img->pixelate(30);
$img->pixelate(30);
rotate() 旋转图片
// 建立图片实例
$img = Image::make('public/foo.jpg');
// 顺时针旋转图图片 45'
$img->rotate(-45);
$img->rotate(-45);
save() 储存图片
第一个参数是档案路径,第二个参数是图片品质,数值介于 0~100
// 建立图片实例
$img = Image::make('public/foo.jpg');
// 储存图片,使用 60 品质的分数去储存
$img->save('public/bar.jpg', 60);
// 储存相同的图片
$img->save('public/baz.jpg');
// 储存 png 格式的图片
$img->save('public/bar.png');
sharpen() 锐利度
锐利度数值介于 0~100
// 建立图片实例
$img = Image::make('public/foo.jpg');
// 锐利度 15
$img->sharpen(15);
$img->sharpen(15);
// 锐利度 70
$img->sharpen(70);
$img->sharpen(70);