jackal / image-merge
一个简单的PHP库,用于处理图片
v0.4.5
2020-05-06 08:23 UTC
Requires
- php: >=5.6
- ext-exif: *
- ext-gd: *
- jackal/bin-locator: ^0.5
- symfony/http-foundation: >=3.4
Requires (Dev)
- brainmaestro/composer-git-hooks: ^2.8
- friendsofphp/php-cs-fixer: ^2.16
- phpunit/phpunit: ^4.8
- vajiral/php-image-compare: ^1.0
README
一个简单的PHP库,用于处理图片,支持GIF、PNG和JPG
要求
PHP >= 5.6 且支持GD库。对于一些额外功能(例如图像扭曲),需要ImageMagick的二进制文件。
入门
使用composer安装库
composer require jackal/image-merge
用法
最小示例
$imageMerge = new ImageMerge();
$imageBuilder = $imageMerge->getBuilder('/path/to/my/file.png'); #or URL, or resource, or binary content
$imageBuilder->resize(620,350)
$imageBuilder->rotate(90);
直接将图像内容输出到输出
[...]
echo $imageBuilder->getImage()->toPNG()->getContent();
保存图像到路径
[...]
$builder->getImage()->toPNG('/path/to/the/image.png');
获取图像响应对象(与Symgony项目兼容)
[...]
return $imageBuilder->getImage()->toPNG()
调整大小
至少需要一个参数。如果只传递一个参数,将保持图像的纵横比进行缩放
$imageBuilder->resize(620,null);
#or
$imageBuilder->resize(null,200);
如果传递两个参数,可以拉伸图像
$imageBuilder->resize(400,200);
缩略图
类似于 Resize,但如果纵横比不受尊重,将裁剪图像(使用 cropCenter)
$imageBuilder->thumbnail(400,400);
旋转
逆时针旋转图像
$imageBuilder->rotate(180);
对于特定的角度(30、45等),将在空白区域创建空白区域以填充空白区域
灰度
向图像添加灰度滤镜
$imageBuilder->grayScale();
亮度
调整图像的亮度
$imageBuilder->brightness(10);
模糊
在图像上添加模糊效果
$imageBuilder->blur(20);
像素化
在图像上添加“像素”效果
$imageBuilder->pixelate(20);
crop 和 cropCenter
裁剪 根据指定的 x 和 y 坐标以及输出尺寸裁剪图像
$point_x = 10,
$point_y = 15;
$width = 50,
$height = 50;
$imageBuilder->crop($point_x,$point_y,$width,$height);
根据输出图像的宽度和高度在图像中心裁剪
$width = 50,
$height = 50;
$imageBuilder->cropCenter($point_x,$point_y,$width,$height);
边框
向图像添加边框(填充矩形内部)
$stroke = 20;
$colorHex = '3399ff';
$builder->border($stroke,$colorHex);
可能在未来更改的实验性功能
addText
在图像内部添加文本
$text = new Jackal\ImageMerge\Model\Text\Text('this is the text', Font::arial(), 12, new Color('ABCDEF'));
$builder->addText($text, 10, 20);
addSquare
在图像上添加一个(颜色填充)的方块
$builder->addSquare(10, 10, 20, 20, 'ABCDEF');
===========================================================================
作者
- Luca Giacalone(别名JackalOne)
许可证
本项目受MIT许可证许可