【问题标题】:How does IMG_CROP_THRESHOLD work compared to IMG_CROP_SIDES?与 IMG_CROP_SIDES 相比,IMG_CROP_THRESHOLD 如何工作?
【发布时间】:2021-07-02 18:37:56
【问题描述】:

IMG_CROP_THRESHOLD 和 IMG_CROP_SIDES 的主要区别是什么?

我一直在尝试从文档照片中粗略地裁剪背景,但无论哪种方式我都无法获得我想要的结果。

另外,我从https://www.php.net/manual/en/function.imagecropauto.php 中获取了null, 16777215,但老实说,我不明白他们实际上在做什么。我本来希望放像0.1, #FFFFFF 这样的东西来裁剪出白色或接近它的背景。 null, 16777215 是什么意思?

$cropped = imagecropauto($img, IMG_CROP_THRESHOLD, null, 16777215);
$cropped = imagecropauto($img, IMG_CROP_SIDES);

【问题讨论】:

  • null 没有多大意义,因为这需要一个百分比值。而16777215FFFFFF,只有十进制……

标签: php image crop


【解决方案1】:

IMG_CROP_SIDES 的工作原理是自动计算图像边界周围像素的平均颜色,并裁剪掉该值 50% 以内的任何内容。

请注意背景图像#FFFFFF = 255 * 255 * 255 (16,777,215),因此任何超过 8,388,607(大约比 #CBCBCB 亮)的连续颜色都将被归类为边框并被删除。

IMG_CROP_THRESHOLD 不计算背景颜色,但它确实在计算中提供了更大的灵活性,因为它允许开发人员指定边框颜色和阈值。文档说明阈值很差,说明它是一个百分比,但这实际上意味着 0 到 100 之间的整数或浮点数(例如,不是 0.25 而是 25)。

这两个调用对于具有浅色背景的图像是等效的。

$cropped = imagecropauto($img, IMG_CROP_SIDES);

$cropped = imagecropauto($img, IMG_CROP_THRESHOLD, 50, 16777215);

如果IMG_CROP_SIDES 正在切入明亮的图像,请改用IMG_CROP_THRESHOLD

例如,阈值为 25 - 任何比 #E8E8E8 轻的东西都是边框。

$cropped = imagecropauto($img, IMG_CROP_THRESHOLD, 25, 16777215);

【讨论】:

    猜你喜欢
    • 2012-02-28
    • 2011-04-04
    • 2017-07-12
    • 2015-04-08
    • 2011-06-01
    • 2022-01-25
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    相关资源
    最近更新 更多