raitisg / imagetool
此包已被放弃,不再维护。未建议替代包。
用于执行各种图像任务的不同工具/函数
dev-master
2020-03-25 07:09 UTC
This package is auto-updated.
Last update: 2020-03-25 07:19:47 UTC
README
关于
ImageTool 是一个用于执行各种图像任务的 PHP 类。每个函数都接受 GD 资源作为输入,也可以将其作为输出(只需将 'output' 选项留空)。
1.1.* 中的更改
由于不需要类对象,此库现在完全由静态函数组成。这使得它在 cake 的模型或其他地方使用非常容易,并不特定于 cakephp。
安装
与 cakephp 一起使用
- 将 ImageTool.php 复制到您的应用 Vendor/ 目录
- 在控制器中包含:App::import('Vendor', 'ImageTool');
作为独立库使用
- 使用 include() 或类似方法在项目中包含
错误处理
大多数图像处理函数返回 true 或 false(根据操作是否成功)。唯一例外是当您没有指定输出(或将它设置为 null/空)时 - 在这种情况下(如果操作成功)GD 资源被返回。
PHP 要求
由于库中使用了新的数组语法,最小 PHP 版本是 5.4。如果需要,您可以在不能使用 5.4 或更高版本的情况下将 [] 替换为 array()。
可用函数
- autorotate - 通过 EXIF 数据自动旋转 JPG 图像
- averageColor - 获取图像的平均颜色
- dominatingColor - 获取图像的主导颜色
- flip - 翻转图像
- grayscale - 去饱和图像
- meshify - 在图像上添加网格(点阵)
- pixelate - 像素化图像
- resize - 调整图像大小
- rotate - 旋转图像(仅限于90度的倍数)
- unsharpMask - 锐化图像
- watermark - 添加水印
示例
创建 100x100 像素的缩略图
$status = ImageTool::resize(array(
'input' => $input_file,
'output' => $output_file,
'width' => 100,
'height' => 100
));
调整图像大小(保持比例),最大宽度和高度均设置为 600px。然后在右下角放置水印图像,并使用默认设置锐化最终结果
$status = ImageTool::resize(array(
'input' => $input_file,
'output' => $output_file,
'width' => 600,
'height' => 600,
'mode' => 'fit',
'paddings' => false,
'afterCallbacks' => array(
array('watermark', array('watermark' => $watermark_file, 'position' => 'bottom-right')),
array('unsharpMask'),
)
));
自动旋转图像(获取回 GD 资源,然后将其传递到下一个函数(灰度)- 与上一个示例类似,但未使用 afterCallbacks 选项)
$image = ImageTool::autorotate(array(
'input' => $input_file,
'output' => null
));
if ($image) {
$status = ImageTool::grayscale(array(
'input' => $image,
'output' => $output_file
));
} else {
$status = false;
}