stojg / crop

该包已被废弃,不再维护。未建议替代包。

图像裁剪类

1.4.0 2020-03-27 10:00 UTC

README

这是我创建的一组小图像裁剪器,用于测试自动裁剪。

Build Status Scrutinizer Quality Score Code Coverage

要求

  • PHP 5.3
  • Imagemagick(默认色彩空间为sRGB,版本6.7.5-5或更高)

描述

这个小项目包含三个功能性的图像裁剪器

CropCenter

这是最基础的裁剪技术

  1. 找到图像的精确中心
  2. 裁剪任何大于targetWidth和targetHeight的边缘

CropEntropy

这个类在图片中找到一个具有最多“能量”的位置。图片中的能量(或熵)由图像的“边缘性”定义。例如,天空的图片边缘性低,而蚁窝的图片边缘性非常高。

在这种情况下,能量是这样计算的

  1. 将图像转换为黑白
  2. 运行边缘过滤器,以便我们只剩下边缘。
  3. 找到图片中熵最高(即边缘最多)的部分
  4. 返回坐标,确保这部分图片不会被裁剪掉

CropBalanced

CropBalanced是CropEntropy的一个变体,我尝试使其裁剪更加平衡。

  1. 将图像分成四个相等的正方形
  2. 找到每个正方形中最具活力的点
  3. 找到所有正方形图像加权平均的兴趣点

CropFace

CropFace使用PHP Facedetect 扩展(它使用OpenCV)。

详细来说,FaceCrop使用Entropy Crop,但为面部设置了“限制”块。如果程序遇到两个限制,我们让熵决定最佳的裁剪。

用法

$center = new \stojg\crop\CropCenter($filepath);
$croppedImage = $center->resizeAndCrop($width, $height);
$croppedImage->writeimage('assets/thumbs/cropped-center.jpg');