「python」で画面上の一部分を、画像データとして取得したいのですが、どんな方法がありますか?

最終的にやりたい事は、辞書ツールBabylonの様に、画面上のあらゆる文字を、1クリックで取得し、画像ファイルとして保存したいです。
いろいろ検索しPILなども日本語訳リファレンスなる物を読んでみましたが、画面上をキャプチャすることは出来なさそうでした。
よろしくお願いします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/07/05 06:07:54
  • 終了:--

回答(2件)

id:kanata_ail No.1

kanata_ail回答回数98ベストアンサー獲得回数02005/07/05 19:20:09

ポイント25pt

xwdで取り込んだ後にImageMagickなどで切り取り。


pythonでの経験はありませんが apache+Perlでデスクトップライブカメラ、などは作成したことがあります。

id:router

ご回答ありがとうございます。

「MS-Windowsやマックでは、ウィンドウシステム自体がスクリーンショットの標準的なキーアサインを提供していますが」とあるので、WinではPrintScreenをとって、ImageMagickを使い座標指定(可能なら)で目的の文字を切り抜くといった形でしょうか?

Win上でのPrintScreenをPython(というかプログラム)で操作できるのでしょうか?

また、クリックした位置情報を取得しそのままImageMagickでトリミング出来るのでしょうか?

2005/07/13 19:02:51
id:kanata_ail No.2

kanata_ail回答回数98ベストアンサー獲得回数02005/07/06 13:14:03

ポイント25pt

カーソルの位置情報はWin32APIのGetCursorPos関数です。

http://yokohama.cool.ne.jp/chokuto/advanced/capturewindow.html

Advanced HSP - ウィンドウキャプチャ

HSP用の解説ですがWin32APIですのでpythonからも利用可能と思います。


わたし自身はpython経験無いので直接的に有効な回答ができなくてごめんなさい。

ポイント0でもOKです。

id:router

ご回答ありがとうございます。

頂いた情報を参考にし、調べてみます。

2005/07/13 19:03:14
  • id:westfish
    http://www.pythonware.com/library/pil/handbook/imagegrab.htm

    PythonImagingLibraryのImageGrabモジュールを使えばスクリーンやクリップボードから画像を取得することが出来ます。スクリーンから範囲を指定して取得することもできます。
    import ImageGrabしてからimage = ImageGrab.grab((100,100,200,200))とすればスクリーンの(100,100)から(200,200)の範囲がキャプチャできることを確認しました。

    マウスカーソルの位置を取得するには、win32api.GetCursorPos()です。win32allというライブラリを入れる必要があります。

    http://ymasuda.jp/python/tips/win32modules.html#win32all

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません