rundiz / image
使用 GD 或 Imagick 作为驱动器的图像处理。支持水印图像或文本、调整大小、裁剪、旋转、透明 GIF 或 PNG,同时也支持动画 GIF(仅 Imagick)。
3.1.5
2024-04-09 13:42 UTC
Requires
- php: >=5.4.0
Requires (Dev)
- yoast/phpunit-polyfills: ^2.0
README
使用 GD 或 Imagick 作为驱动器的简单图像处理。
功能
支持的文件扩展名
- AVIF (AVIFS)
*
- GIF
- JPG (JPEG)
- PNG
- WEBP
*
功能
- 裁剪
- 翻转(需要 PHP 5.5+ 支持 GD 驱动器。)
- 调整大小(宽高比和宽高比不变)
- 旋转
- 水印图像(包括 alpha 透明度。)
- 水印文本(包括 alpha 透明度。)
- 支持 alpha 透明度或透明的 AVIF、GIF、PNG、WEBP。
- 支持动画 GIF、WEBP
*
(仅 Imagick)。
示例
驱动器
Gd 驱动器
$Image = new \Rundiz\Image\Drivers\Gd('/path/to/source-image.jpg');
Imagick 驱动器
$Image = new \Rundiz\Image\Drivers\Imagick('/path/to/source-image.jpg');
后备驱动器
如果不支持,您可以同时使用多个驱动器作为后备。
if (extension_loaded('imagick') === true) { $Image = new \Rundiz\Image\Drivers\Imagick('/path/to/source-image.jpg'); } else { $Image = new \Rundiz\Image\Drivers\Gd('/path/to/source-image.jpg'); }
图像处理方法
// Crop an image $Image->crop(400, 400, 'center', 'middle');// crop start from center of X and Y $Image->crop(400, 400, 20, 90);// crop start from X 20 and Y 90 // Resize $Image->resize(600, 400); // Resize without aspect ratio $Image->resizeNoRatio(500, 300); // Rotate $Image->rotate();// 90 degree $Image->rotate(180); $Image->rotate(270); // Flip $Image->rotate('hor');// horizontal $Image->rotate('vrt');// vertical $Image->rotate('horvrt');// both horizontal and vertical // Watermark image $Image->watermarkImage('/var/www/image/watermark.png', 'center', 'middle'); $Image->watermarkImage('/var/www/image/watermark.png', 50, 90);// watermark start from X 50 and Y 90 // Watermark text $Image->watermarkText('hello world', '/var/www/fonts/myfont.ttf', 'center', 'middle', 16); $Image->watermarkText('hello world', '/var/www/fonts/myfont.ttf', 50, 90, 16);// watermark start from X 50 and Y 90
多图像处理
$Image = new \Rundiz\Image\Drivers\Gd('/path/to/source-image.jpg'); $Image->resize(900, 600); $Image->save('/path/to/new-file-name-900x600.jpg'); // Use method clear() to clear all processed data // and start new image process with the same image source. $Image->clear(); $Image->resize(300, 100); $Image->save('/path/to/new-file-name-300x100.jpg');
有关更多详细信息,请参阅测试文件夹或查看 API 文档
备注
*
AVIF
- 使用 ImageMagick 7.0.10-25 之前的版本 的 PHP 和 Imagick 不支持打开或保存 AVIF。
某些较老的系统可能可以保存,但文件的 MIME 类型不会改变。 - PHP 和 Imagick(依赖于 ImageMagick) 不支持动画 AVIF(AVIFS)。
- 所有版本的 PHP(最后检查 8.3)与 GD 一起不支持某些类型的 AVIF。
- 使用 GD 的 PHP 8.1 之前的版本不支持 AVIF。
- 使用 ImageMagick 7.0.10-25 之前的版本 的 PHP 和 Imagick 不支持打开或保存 AVIF。
*
WEBP
- 使用 ImageMagick 7.0.8.68 之前的版本 的 PHP 和 Imagick 不支持打开或保存动画 WEBP。
- 所有版本的 PHP(最后检查 8.3)与 GD 一起不支持动画 WEBP。
- 使用 GD 的 PHP 7.0 之前的版本不支持打开或保存透明 WEBP。
- 使用 GD 的 PHP 5.6 之前的版本不完全支持 WEBP,并且可能导致图像变绿。在 Windows 上的 PHP 进行了测试。