1

最近、いくつかのタスクを自動化するために、AutoPy と一緒に PIL を使い始めました。AutoPy が必要とするコア機能の 1 つは、驚くほど高速であることです (バグがありますが、修正があります。ソースからのビルドとインストールは煩わしい場合があります。エラーが発生した場合は、Unable to find vcvarsall.batGoogle で検索してください)。

しかし、たった今、解決策が見つからない問題に遭遇しました。PIL と AutoPy は、スクリーンショットに根本的に異なる形式を使用します。AutoPy の場合、複数の画面で動作させることができませんでしたが、PIL の場合は簡単に動作しました。ここで、これらの画像を A​​utoPy が受け入れる形式に変換する必要があります。これは妥当な時間内です。

理論的に可能な解決策:

def test(): Img = Image.open("example.png") Img.save("test.png") Img2.open("test.png")

私のテストでは、これが完了するまでに約 0.5 秒かかりました。必要な 0.1 秒をはるかに超えています。

4

1 に答える 1

1

ドキュメンテーションを調べて、ビットマップ画像変換ツールを見つけました。

pil_im = Image.open("test.png")
pil_im = pil_im.convert(mode ="1") 
#this is to prevent a value error in the tobitmap function

pil_im = pil_im.tobitmap(im)

以前、pyautogui のスクリーンショットが最近開いた png と同じと見なされないという同様の問題がありました。pil_im.copy() は、すべてのフォーマットなしで比較する画像を作成しました。

于 2017-02-17T02:58:08.563 に答える