dnsimmons / imager
Imager 是一个 Laravel 扩展包,简化了使用 PHP 原生 GD 库扩展进行图像处理操作。
Requires
- ext-gd: *
This package is auto-updated.
Last update: 2024-09-29 05:14:53 UTC
README
关于 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();