3

我在 Windows 下运行一个 Python 脚本,它处理PNG32 位深度的 480x800 图像。我需要检查给定的图像是否全黑。经过一番搜索,我发现 ImageMagick 可以帮助我实现这一目标,但不幸的是,没有此类任务的手册。

所以一个更普遍的问题是如何检查图像是否只包含一种颜色?

编辑:

对于没有从一开始就提供有关环境的所有信息,我深表歉意。python 脚本使用 Android 的monkeyrunner. 由于它使用自己的 Jython 实例(2.5 版),因此无法使用来自外部库的任何模块。里面有一个MonkeyImage类可以处理从设备截取的屏幕截图。所以我采用了@eumiro 的回答。

4

2 回答 2

4
import Image
im = Image.load("image.png")
diff_colors = list(set(im.getdata()))
if len(diff_colors) == 1 and diff_colors[0] == (0, 0, 0):
    print "all black"

正如@JonClements 建议的那样进行编辑,一旦发现黑色以外的任何东西,这将更快并停止:

import Image
im = Image.load("image.png")
if all(rgb == (0,0,0) for rgb in im.getdata()):
    print "all black"
于 2012-12-04T13:52:49.620 回答
1

我不是 Python 专家,但我看到有一个可以使用的 PNG 模块。加载 PNG 并将其导出到 RGB(A) 数组。

检查它是否完全是黑色的应该很简单。遍历数组并确保没有与 0 不同。

我认为这应该有效。

出于好奇,您为什么要检查图像是否为黑色?

于 2012-12-04T13:52:21.987 回答