ride/lib-image

Ride框架的图像处理库

1.0.2 2020-01-24 10:30 UTC

This package is auto-updated.

Last update: 2024-09-24 20:28:11 UTC


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