3

PNGWindows で32 ビット深度の480x800 画像を処理する Python スクリプトを実行しています。指定された画像が完全に黒かどうかを確認する必要があります。いくつかの検索の後、ImageMagick がこれを達成するのに役立つことがわかりましたが、残念ながらそのようなタスクのマニュアルはありません。

より一般的な質問は、画像が 1 つの色だけで構成されているかどうかを確認する方法です。

編集:

最初から環境に関するすべての情報を提供できなかったことをお詫びします。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 に答える