使用 PHP 检测白色图像背景?

Detecting white image background with PHP?

是否可以使用 PHP(或者 JS 或类似的东西)来检测图像是否具有大部分白色背景?

这是因为我显示图片的地方是白色背景。有些图像有深色或彩色背景,但有些是白色或大部分是白色。我有一个名为 img-shadow 的 css class 可以为图像添加阴影。所以我想补充一点,只有当图像的背景是白色或大部分是白色的时候。

这里有一个例子来说明我的意思:

即使整个过程有很多坑,我还是会选择用PHP来做。

首先,请回答以下问题:

  • 主要是白色背景究竟是什么? RGB(250,250,250) 还算数吗?
  • 具有 alpha 通道的 PNG 是否计数(RGBA)?
  • 带 light/bright 黄色的图片算吗?
  • 具有黑色边框(框架)和白色中心的图像是否仍然算作白色 背景?
  • 用户可以上传图片吗?

你必须:

  1. 加载图片
  2. get histogram
  3. 按照你的规则分析
  4. 添加关于特定图像的元信息并在输出中生成 css class。

除此之外我建议:

  • 不会分析每个脚本执行图像上的某种结果缓存或元数据存储
  • 检查图片是否有边框(通过查看图片的侧面开发算法)
  • 将 alpha 通道视为与白色相同(可能是带有圆角的深色徽标 - 没有白色)