moust/paint

图像处理库

dev-master 2015-06-04 16:29 UTC

This package is not auto-updated.

Last update: 2024-09-24 01:30:55 UTC


README

Build Status SensioLabsInsight

Paint 是一个面向对象的库,用于根据您的 PHP GD 扩展版本和能力,以多种不同的图像格式处理图像文件。

基本用法

<?php
$image = new Pain\Image('source.jpeg');
$image->addTransformation( new Transformation\Resize(300, 200) );
$image->addFilter( new Paint\Filter\Grayscale() );
$image->generate( new Paint\Format\JPEG(60), 'destination.jpeg' );

文档

本文档是了解 API 的入门指南。建议浏览源代码,因为它具有自文档功能。

Paint\Image 是用于处理图像的主要对象

$image = new Pain\Image('source.jpeg');

处理图像

可打开的图像类型包括 GIF、JPEG、PNG、WBMP 和 XBM。

要生成输出图像,请使用 Paint\Image::generate 方法。

$image->generate();

Paint\Image 可以写入各种不同的图像格式。要定义所需的输出格式,请使用带有扩展 FormatInterface 实例对象的 Paint\Image::generate 方法作为额外参数,如 Paint\Format\JPEGPaint\Format\PNG

$image->generate( new Paint\Format\PNG(), 'destination.png' );

如果未定义输出文件路径,则将直接输出原始图像流;否则,将其写入。

某些输出格式可以接受可选参数,例如 JPEG 或 PNG 的压缩级别。有关更多信息,请浏览源代码。

$image->generate( new Paint\Format\JPEG(60) );

支持的写入格式

  • GIF
  • JPEG
  • PNG
  • WBMP
  • WebP(仅支持 PHP 5.5 版本以上)
  • XBM

转换

可以通过添加转换对象来调整图像大小或裁剪图像。

$image->addTransformation( new Paint\Transformation\Resize(960, 480) );
$image->addTransformation( new Paint\Transformation\Crop(500, 500) );

支持的转换

  • 调整大小
  • 裁剪
  • 镜像
  • 旋转

存在一个快捷函数来调整大小或裁剪图像。参数分别对应图像的宽度和高度。

$image->setOutputSize(960, 480);

可以传递一个可选的第三个参数来定义图像是裁剪还是适应图像大小。此参数必须是 Paint::RESIZE_CROPPaint::RESIZE_FIT

$image->setOutputSize(960, 480, Paint::RESIZE_CROP);

默认情况下,图像将适应图像大小。

过滤器

您可以使用 Paint\Image::addFilter 方法在 Paint\Image 上应用过滤器。

$image->addFilter( new Paint\Filter\Grayscale() );

某些过滤器需要可选参数,例如需要颜色值的 Paint\Filter\Colorize。有关更多信息,请浏览源代码。

$image->addFilter( new Paint\Filter\Colorize(255, 0, 0, 75) );

可用的过滤器

  • 亮度
  • 着色
  • 对比度
  • 卷积
  • 边缘检测
  • 浮雕
  • 高斯模糊
  • 灰度
  • 去除均值
  • 乘法
  • 取反
  • 像素化
  • 选择性模糊
  • 平滑度

您可以通过创建实现 Paint\Filter\FilterInterface 接口的对象来构建自己的附加过滤器。

测试

要运行测试套件,您需要 composer

$ php composer.phar install --dev
$ vendor/bin/phpunit

许可证

Paint 以 MIT 许可证发布

版权所有 (c) 2013 Quentin Aupetit

特此授予任何获得本软件及其相关文档文件(“软件”)副本的任何人免费使用软件的权利,不受限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许获得软件的人进行此类操作,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“现状”提供,不提供任何形式的质量保证,无论是明示的、暗示的,还是关于适用性、特定目的的适用性或非侵权的保证。在任何情况下,作者或版权所有者都不应对任何索赔、损害或其他责任负责,无论是基于合同行为、侵权行为还是其他行为,无论是由于、来自或与软件或软件的使用或其他方式有关。