pixelandtonic / imagine
PHP 5.3 的图像处理
Requires
- php: >=5.5
Requires (Dev)
- phpunit/phpunit: ^4.8 || ^5.7 || ^6.5 || ^7.5 || ^8.4 || ^9.3
Suggests
- ext-exif: to read EXIF metadata
- ext-gd: to use the GD implementation
- ext-gmagick: to use the Gmagick implementation
- ext-imagick: to use the Imagick implementation
- dev-main
- 1.3.3.1
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.4.2
- 1.2.4.1
- 1.2.4
- 1.2.3
- 1.2.2.1
- 1.2.2
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0.2
- 1.0.1
- 1.0.0
- 1.0.0-alpha2
- 1.0.0-alpha1
- v0.7.1.3
- v0.7.1.2
- v0.7.1.1
- v0.7.1
- v0.7.0
- v0.6.3.2
- v0.6.3.1
- v0.6.3
- 0.6.2
- v0.6.1
- v0.6.0
- v0.5.0
- v0.4.1
- v0.4.0
- v0.3.1
- v0.3.0
- v0.2.8
- v0.2.7
- v0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.1
- 0.2.0
This package is auto-updated.
Last update: 2024-08-25 02:38:59 UTC
README
注意: 这是 Bulat Shakirzyanov 的“Imagine”图像处理库的官方分支。
使用 #php_imagine 标签来推特分享。
PHP 的图像处理库,灵感来源于 Python 的 PIL 和其他图像库。
要求
Imagine 库有以下要求
- PHP 5.5+
根据所选图像实现方式,可能需要以下 PHP 扩展之一
- GD2
- Imagick(ImageMagick 版本 6.2.9 或更高版本,但不是 7.0.7-32 版本)
- Gmagick
为了读取 EXIF 元数据(例如,用于自动旋转),请激活 PHP exif
扩展。这是可选的:Imagine 在没有 PHP exif
扩展的情况下也可以工作,但此时它无法读取和操作图像方向或其他 EXIF 元数据。
使用 composer 安装
php composer.phar require imagine/imagine
基本原理
Imagine 的主要目的是提供所有必要的功能,将所有 PHP 原生低级图像处理库的功能带到相同简单直观的 OOP API。
要实现这一点,需要以下几件事情
- 图像处理工具,如缩放、裁剪等。
- 绘图 API - 创建基本形状和高级图表,在图像上写文字
- 遮罩功能 - 可以将黑白或灰度图像作为遮罩应用,导致遮罩图像的半透明或绝对透明
上述工具应该是称为 Imagine 中的 Filters
的更强大工具集的基本基础。
一些即将推出的过滤器想法
- 图表和绘图过滤器 - 饼图和柱状图,带注释的线性图
- 反射 - 苹果风格
- 圆角 - Web 2.0
文档
演示文稿
文章
贡献
分支
新拉取请求应基于 develop
分支。 master
分支是稳定分支:它通常与最新版本匹配,但有时可能略微领先。
测试组
一些 PHPUnit 测试被标记为跳过(例如,需要支持多层的驱动程序且使用 GD 驱动程序执行的测试)。另外,如果您没有安装 gmagick,gmagick 测试将被标记为跳过。
如果您不想运行标记为“始终跳过”的测试,您可以告诉 PHPUnit 排除 always-skipped
组。同样,对于需要特定驱动程序的测试(gd
、imagick
、imagick
)。
例如,要排除 always-skipped
和 gmagick
测试,您可以使用以下命令选项启动 phpunit
composer run test -- --exclude-group always-skipped,gmagick
开发环境
设置包含所有必需库的环境可能非常困难。为了在本地上运行测试,您可以使用 Imagine 用于测试拉取请求的相同 Docker 镜像。
例如,如果您在本地的 /home/me/imagine
文件夹中安装了 Imagine,您可以使用以下非常简单的方法运行 PHP 8.1 的测试以及 GD 和 Imagick
- 使用以下命令启动一个临时的 Docker 容器:
docker run --rm -it -v /home/me/imagine:/app -w /app ghcr.io/php-imagine/test:8.1-gd-imagick bash
- 在 Docker 容器内部,运行以下命令:
# Start a local web server: some tests require it cd tests php -n -S 0.0.0.0:8013 >/dev/null 2>&1 & cd .. # Tell the tests that the local web server is available at the port 8013 export IMAGINE_TEST_WEBSERVERURL=http://localhost:8013 # Install the composer dependencies composer update # Run the tests composer run test -- --exclude-group always-skipped,gmagick
注意:此方法同样适用于 Windows:只需使用以下命令启动 Docker 容器:
docker run --rm -it -v C:\Path\To\Imagine:/app -w /app ghcr.io/php-imagine/test:8.1-gd-imagick bash
构建测试文件
许多测试会在 tests/tmp
目录中创建临时文件,这些文件包含构建的图像。这些临时文件将与预期的图像进行比较,然后被删除。如果您想保留这些临时文件(例如,为了检查正在构建的内容),可以设置环境变量 IMAGINE_TEST_KEEP_TEMPFILES
。如果 GitHub Action 测试中配置了 IMAGINE_TEST_KEEP_TEMPFILES
,这些临时文件将作为附件附加到测试中。