msgframework / image
这个库帮助您处理图像:裁剪、缩放、更改质量和添加水印。
v0.7.18
2022-04-05 23:27 UTC
Requires
- php: >=7.4
- msgframework/file: ^v0.1
Requires (Dev)
- phpstan/phpstan: ^1.3
- phpunit/phpunit: ^9.5
Suggests
- ext-gd: To use GD library based image processing.
- ext-imagick: To use Imagick based image processing.
README
关于
这个库帮助您处理图像:裁剪、缩放、更改质量和添加水印。
使用
加载ImageFactory
use Msgframework\Lib\Image\ImageFactory; use Msgframework\Lib\Image\Adapter\ImageAdapter; ... // Create factory $factory = new ImageFactory();
使用ImageFactory创建图像
... $factory = new ImageFactory(); // Create ImageAdapter from $path with auto selected Adapter $image = $factory->getImage($path); // Create ImagickAdapter from $path $image = $factory->getImage($path, 'Imagick'); // Create GDAdapter from $path $image = $factory->getImage($path, 'GD');
不使用ImageFactory创建图像
... // Create ImagickAdapter from $path $image = new \Msgframework\Lib\Image\Adapter\ImagickAdapter($path); // Create GDAdapter from $path $image = new \Msgframework\Lib\Image\Adapter\GDAdapter($path);
获取图像尺寸
... $image = $factory->getImage($path); $image->getWidth(); // Return width in px $image->getHeight(); // Return height in px
缩放图像
... $image = $factory->getImage($path); $image->resize(300, ImageAdapter::SIDE_WIDTH); // Set image width 300px ... $image->resize(500, ImageAdapter::SIDE_HEIGHT); // Set image width 500px $image->resize(800, ImageAdapter::SIDE_AUTO); // Set image width/height 800px by longest side
缩放图像
用于将图像缩放到指定边上的给定值
... $image = $factory->getImage($path); $image->scale(300, ImageAdapter::SIDE_WIDTH); // Set image width 300px and scaled height
裁剪图像
允许您裁剪图像到指定大小,而不会出现空白区域
... $image = $factory->getImage($path); $image->crop(300, 500); // If a similar image had dimensions of 400x400px, then the output will be an image of 300x400px
更改图像不透明度
允许您将图像的不透明度更改为一个从0到100的百分比
... $image = $factory->getImage($path); $image->opacity(.5); // Accepts float values from 0 to 1
更改图像质量
允许您指定图像质量百分比
... $image = $factory->getImage($path); $image->quality(80); // Accepts int values from 0 to 100
保存更改后的图像
... $image = $factory->getImage($path); ... $image->save($image->getPathName()); // Owerwrite Image $image->save($newpath); // Save new Image
显示图像
如果您需要通过链接显示修改后的图像而不存储它们,例如,实现预览
... $image = $factory->getImage($path); ... $image->resize(600, ImageAdapter::SIDE_WIDTH); $image->show();
添加水印到图像
... $image = $factory->getImage($pathImage); $watermark = $factory->getImage($pathWatermark); ... $image->watermark($watermark, ImageAdapter::WATERMARK_CENTER_CENTER, 20, 70, 70); $image->save();
水印位置代码
要定位水印,您可以使用ImageAdapter常量和表中的代码
销毁图像
如果您已经完成了图像处理但仍然想要处理文件
... $image = $factory->getImage($path); ... $image->save()->destroy(); ... $dirPath = $image->getPath(); // Get path to image directory
安装
您可以使用Composer轻松安装此包。
只需使用以下命令要求包
$ composer require msgframework/image
资产
用于PHPUnit测试的所有图像均从网站unsplash.com下载