2016-12-05 3 views
1

最近、AutoPyと一緒にPILを使っていくつかのタスクを自動化する作業を開始しました。 AutoPyが必要とするコア機能の1つは、驚くほど高速です(バグはありますが、fixesがあります。ソースからのビルドとインストールは煩わしくなる可能性があり、エラーの場合はUnable to find vcvarsall.bat、googleだけです)。PILイメージを自動コピービットマップに変換する

しかし、今私は修正プログラムを見つけることができない問題に遭遇しました。 PILとAutoPyは、基本的に異なるスクリーンショットのフォーマットを使用します。 AutoPyでは複数の画面で動作するようにはできませんでしたが、PILの場合は簡単にできます。今私はAutoPyが受け入れる形式にこれらのイメージを変換する必要があります - それは合理的な時間内に。

A theoratically可能な解決策:私のテストで行く

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

、これが完了するまでにおよそ約0.5秒かかります。私が必要とする0.1秒以上。

+0

ソリューションを見つけたことがありますか?私はまったく同じ問題を抱えています!あなたが解決策を見つけたら、私はあなたにそれを共有する時間があることを願っています:-) – Vingtoft

答えて

0

ドキュメントを掘り、ビットマップイメージ変換ツールを探しました。

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()は、すべての書式なしで比較するイメージを作成しました。

+0

ありがとう、私は必要としていませんでした。あなたも少し遅れています。 capture_screen関数によって出力されたイメージがソースでトリミングされる方法。しかし、私はすでにこれが将来有用であることを知っています。 – JeWe37

関連する問題