dnsimmons/imager

Imager 是一个 Laravel 扩展包,简化了使用 PHP 原生 GD 库扩展进行图像处理操作。

2.0.0 2020-06-07 19:08 UTC

This package is auto-updated.

Last update: 2024-09-29 05:14:53 UTC


README

Latest Stable Version Latest Unstable Version Total Downloads License

关于 Imager

Imager 是一个Laravel 扩展包,简化了使用 PHP 原生 GD 库扩展进行图像处理操作。

安装

使用 composer 安装此扩展包

composer require dnsimmons/imager

将服务提供者添加到您的 config/app.php 文件中,并添加一个别名

'providers' => [
	...
    Dnsimmons\Imager\ImagerServiceProvider::class,
];

'aliases' => [
	...
    'Imager' => Dnsimmons\Imager\Imager::class,	
];

用法

基本用法

以下基本示例将输入文件 example.jpg 调整大小为 640 x 480 像素,然后将其转换为灰度图,最后将原始图像数据输出到浏览器。

基本示例

$imager = new \Imager('path/to/example.jpg');
$imager->resize(640,480)->greyscale()->render();

本文档中的大多数示例都使用了对 render() 的调用,这将返回原始图像数据。如果您希望将图像写入磁盘,请使用 write() 并指定输出路径和文件名。

渲染示例

$imager = new \Imager('path/to/example.jpg');
$imager->resize(640,480)->greyscale()->render();

写入示例

$imager = new \Imager('path/to/example.jpg');
$imager->resize(640,480)->greyscale()->write('path/to/output.jpg');

使用脚本

Imager 还支持使用 JSON 进行脚本化处理。让我们重复上面的操作,但这次以脚本的形式交付。

脚本示例

$imager = new \Imager('path/to/example.jpg');
$imager->script('path/to/script.json')->render();

以下是我们示例命令脚本(script.json)。参数按照给定命令所需的实际方法的顺序提供。

[
	{"command":"resize", "params":["640","480"]},
	{"command":"greyscale", "params":[]}
]

命令(A-Z)

anaglyph( )

将立体 3D anaglyph 效果应用到图像上。

$imager->anaglyph()->render();

blackwhite( )

将图像颜色转换为黑白。

$imager->blackwhite()->render();

blur( 整数 $level )

使用给定级别从 0 到 10 模糊图像。

$imager->blur(1)->render();

brightness( 整数 $level )

调整图像的亮度,给定级别从 -100 到 100。

$imager->brightness(50)->render();

colorize( 整数 $r, 整数 $g, 整数 $b )

使用给定的 RGB 值从 -255 到 255 应用颜色蒙版到图像上。

$imager->colorize(128,0,255)->render();

convert( 字符串 $format )

将图像转换为指定的图像格式(JPEG、PNG 或 GIF)。

$imager->convert('JPEG')->render();

contrast( 整数 $level )

调整图像的对比度,给定级别从 -100 到 100。

$imager->contrast(50)->render();

crop( 整数 $x, 整数 $y, 整数 $width, 整数 $height )

从给定的 x 和 y 原点像素位置裁剪图像的指定宽度和高度。

$imager->crop(0,0,320,240)->render();

desaturate( 整数 $level )

调整图像的饱和度,给定级别为 0 到 100。

$imager->desaturate(50)->render();

emboss( )

将浮雕滤镜应用到图像上。

$imager->emboss()->render();

fisheye( )

将鱼眼镜头效果应用到图像上。

$imager->fisheye()->render();

flip( 字符串 $direction )

水平(h)、垂直(v)或两个方向(b)翻转图像。

$imager->flip('b')->render();

greyscale( )

将图像颜色转换为灰度。

$imager->greyscale()->render();

layer( 字符串 $image_path, 整数 $opacity )

使用相同尺寸在图像上叠加给定不透明度(从 0 到 100)的图像。

$imager->layer('path/to/layer.png', 50)->render();

negative( )

将负滤镜应用到图像上。

$imager->negative()->render();

noise( 整数 $level )

给图像添加给定噪声级别从 0 到 ? 的噪声。

$imager->noise(20)->render();

pixelate( 整数 $size )

使用给定的像素大小将像素化滤镜应用到图像上。

$imager->pixelate(4)->render();

replace( 整数 $r, 整数 $g, 整数 $b, 整数 $r2, 整数 $g2, 整数 $b2 )

使用给定的 RGB 值从 -255 到 255 应用颜色替换到图像上。

$imager->replace(255,0,0,0,0,255)->render();

resize( 整数 $width, 整数 $height )

将图像调整到指定的宽度和高度像素。

$imager->resize(640,480)->render();

rotate( 整数 $degrees )

按给定度数旋转图像。

$imager->rotate(90)->render();

scale( 整数 $width, 整数 $height )

根据最大尺寸保持宽高比,将图像缩放至指定的宽度和高度(以像素为单位)。

$imager->scale(640,480)->render();

sepia( )

对图像应用棕褐色滤镜。

$imager->sepia()->render();

sharpen( 整数 $level )

使用从0到10的给定级别锐化图像。

$imager->sharpen(1)->render();

sketch( )

对图像应用素描滤镜。

$imager->sketch()->render();

smooth( 整数 $level )

使用从0到100的给定级别平滑图像。

$imager->smooth(10)->render();

vignette( 整数 $size )

以给定大小(从0到10)对图像应用晕影效果。

$imager->vignette(0.4)->render();

watermark( 字符串 $image_path, 字符串 $position )

在图像的指定位置上应用图像。可能的定位包括中心、左上角、右上角、左下角和右下角。

$imager->watermark('path/to/watermark.png', 'bottom-right')->render();