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;
}