这个库帮助您处理图像:裁剪、缩放、更改质量和添加水印。

v0.7.18 2022-04-05 23:27 UTC

This package is auto-updated.

Last update: 2024-09-06 04:49:33 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

关于

这个库帮助您处理图像:裁剪、缩放、更改质量和添加水印。

使用

加载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下载