ride / lib-image
Ride框架的图像处理库
Requires
- ride/lib-system: ^1.0.0
README
Ride PHP框架的图像处理库。
要使用此库,您的服务器需要安装GD或Imagick。
此库包含的内容
图像
Image接口是此库的基础。
通过此接口,您可以
- 读取和写入图像
- 获取有关图像的信息,如尺寸
- 基本操作,如缩放和裁剪
DrawImage接口从Image扩展,并添加了在图像上绘制点、线等方法。
GD和Imagick都提供了实现。
ImageFactory
ImageFactory接口提供了一种创建与图像交互所需实例的通用方式。
通过GenericImageFactory提供了通用实现。
点
Point接口用于在X-Y轴上定义一个坐标。它用于图像操作。一个点可以在轴上正负移动。
通过GenericPoint提供了通用实现。
尺寸
Dimension接口定义了图像或操作的尺寸。
通过GenericDimension提供了通用实现。
转换
Transformation接口提供了一种应用批图像操作的方式。
提供了裁剪、缩放、翻转、模糊、灰度、水印和链式操作等实现。
模糊
模糊您的图像。
此转换有以下选项
- radius:可选,默认为10
裁剪
通过首先将图像缩放到最佳尺寸来裁剪您的图像。
此转换需要以下选项
- width:裁剪到的像素宽度
- height:裁剪到的像素高度
翻转
在X轴和/或Y轴上翻转您的图像。
此转换需要以下选项
- 模式:可以是水平、垂直或两者都。
灰度
将您的图像转换为灰度图像。
此转换没有选项。
缩放
将您的图像缩放以适应最大宽度和/或高度。
此转换需要以下选项之一
- width:结果图像的最大宽度
- height:结果图像的最大高度
水印
向您的图像添加水印。
此转换有以下选项
- x:X轴上的点,默认为0
- y:Y轴上的点,默认为0
- watermark:水印图像的相对路径
优化器
Optimizer接口可用于对图像文件进行优化。它旨在优化文件大小,但也可以用于其他目的。
通过GenericOptimizer提供了通用实现。
GenericOptimizer
通用图像优化器使用以下系统上的二进制文件
- pngcrush
- optipng
- jpegoptim
- jpegtran(libjpeg-turbo-progs或libjpeg-progs)
- gifsicle
注意:不存在的二进制文件将被忽略。
NullOptimizer
此优化器不执行任何优化。
颜色
Color接口提供了一种轻松处理颜色的方式。
接口目前实现了RGB和HSL颜色模型。
颜色方案
《ColorScheme》接口用于为指定的基色生成一组颜色。
该接口目前实现了单色和互补方案。
代码示例
查看此代码示例以了解该库的可能性。
<?php use ride\library\image\exception\ImageException; use ride\library\image\GenericImageFactory; use ride\library\image\Image; use ride\library\system\file\File; function foo(File $file) { // create an image factory, this one uses GD $imageFactory = new GenericImageFactory('gd'); // use the image factory to create an image $image = $imageFactory->createImage(); try { // read an image file $image->read($file); } catch (ImageException $exception) { // file could not be read or invalid image return false; } // get some properties of the image $hasTransparancy = $image->hasAlphaTransparancy(); $transparentColor = $image->getTransparentColor(); $dimension = $image->getDimension(); $dimension->getWidth(); $dimension->getHeight(); // do some manipulations $dimension = $dimension->setWidth($dimension->getWidth() / 2); $image = $image->resize($dimension); $dimension = $dimension->setHeight($dimension->getHeight() / 2); $image = $image->crop($dimension); $image = $image->flip(Image::MODE_HORIZONTAL); $image = $image->rotate(90); $image = $image->blur(); $image = $image->convertToGrayscale(); // write the result back to the file $image->write($file); }
实现
更多示例,您可以查看以下库的实现。
安装
您可以使用Composer安装此库。
composer require ride/lib-image