• 締切済み

任意の座標の画像(色)を取得するには?

任意の座標から指定したサイズの画像(BMPなど)を取得したいのですが、どういうAPIを使っていいのかわかりません。 GetPixel()だと処理がどうしても遅くなってしまいます。 何か良いアドバイスをお願いします。 Windows XPです。

みんなの回答

  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.2

3. 「2.」のDCを作成 の間違いでした。

torajiro07
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。
  • xcrOSgS2wY
  • ベストアンサー率50% (1006/1985)
回答No.1

Windows APIを使うとすれば 1. 取得したい画像のDCを作成 2. CreateCompatibleBitmapやCreateDIBSectionでビットマップを作成 3. 1.のDCを作成 4. 1.から3.にBitBlt 5. ビットマップの内容を読み出し という感じです。

torajiro07
質問者

補足

Print Screenキーでディスプレイ全体の画像を取得することができます。 これと同じような機能を任意の座標、任意のサイズで実現したいのです。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 最小化されたウインドウの任意の座標の色

    最小化されてないウインドウの任意の座標上の色を取得するには、APIのGetPixel関数を使って出来たのですが、そのウインドウが最小化されている場合は-1という値が返ってきて色を取得できませんでした。 最小化されたウインドウの任意の座標の色を取得すにはどうすればいいのでしょうか? よろしくお願い致します。

  • IEに表示されるウェブ画像のある座標の色を取得したい。

    IEである画像を表示すると、その中の一部の色が時間とともに変化するのでプログラムで座標指定して色を取得したいのですがIEに表示するところまではできたのですが、そこから進めません。 みようみまねのGetpixelもうまくいかないし・・。 画像のURLは http://mt9.jp/images/users/8253/168253/p.gif です。 ヒントをいただけないでしょうか

  • 画像の座標取得

    VBのPictureBoxでピクチャーを表示し、指定したカラーの座標(X,Y)を配列で取得する方法はありますか? 例えば、真っ黒の中に白い点が散りばめられている画像を読み込んだとして、ピクチャー上に白で表示されている部分のXY軸を取得し、座標計算等を行おうとしています。 上記方法以外でも良い方法があればお願いします。 画像自体が大きいので、出来るだけ早い処理で取得出来るものをと考えています。

  • 画像の座標取得

    c言語を使って, 画像を読み込んできて, 画像上のクリックした画像の座標を取得する プログラムを作りたいのですが, どうすればよいでしょうか. 画像の読み込み→画像の表示→画像をクリック→画像の座標を取得 といった流れのものを作りたいです. 最初は保存されている静止画像を読み込んで座標を取得することをやり, 最終的にはUSBカメラなどを使って動画の座標の取得を目指しています. 使用OSはWindows7, コンパイラはVisual Studio 2008をつかっております.

  • C#で、画像の、指定した座標の色情報を取得し

    C#、Visual Studio2008を使用しています。 ピクチャーボックスに画像を読み込み、その画像の、指定した座標の色情報を取得したいです(RGB値)。 画像の読み込みまではできました。 その次の指定した座標の色情報を取得するようなメソッド?コマンド?は存在するのでしょうか? 検索しても出てこないため、ご存知でしたら教えていただけると助かります。よろしくお願いします。

  • FORTRAN でBMP画像の値の取得

    FORTRAN でBMP画像の値の取得をしたいのですが,どうすればいいでしょう? たとえば,10×10画素の8bitのbmp画像の各ピクセルの値を読んで,テキストに書き出したいとします. ですので,できるファイルは・・ 1,1,255 1,2,255 ・ ・ ・ みたいに,X座標,Y座標,そこの値 っていうふうにしたいんです. わからないのは,BMP画像の値の取得方法です. また,bmpを読み込んで,その情報を元にまたbmpを作る時はどうすればいいでしょう? 長々とすいません.

  • 特定座標のRGB値取得について

    kimarioと申します。 実行中の、あるアプリケーションの任意座標位置のRGB値を取得し、その結果を メッセージボックスにて表示させたいと考えております。 しかし下記のプログラムを実行すると、どの座標位置でもすべて(-1)で返ってき てしまいます。 getDCの戻り値が(0)ではないことを確認しているので、デバイスコンテキストの ハンドルは取得できているものと思われます。 API初心者です。よろしくお願いいたします。 補足) アプリケーションのウィンドウタイトルが「XXYYZZ」 色を特定したい座標を(60, 60)としています。 ############################################################################ public partial class Form1 : Form { [DllImport("user32.dll")] static extern IntPtr GetDC(IntPtr hWnd); [DllImport( "user32.dll" )] static extern int ReleaseDC( IntPtr hWnd, IntPtr hDC ); [DllImport( "gdi32.dll" )] static extern int GetPixel( IntPtr hDC, int x, int y ); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { foreach (Process p in Process.GetProcesses()) { if (p.MainWindowHandle != IntPtr.Zero) { if (p.MainWindowTitle == "XXYYZZ") { IntPtr dc = GetDC(p.MainWindowHandle); MessageBox.Show(GetPixel(dc, 60, 60).ToString()); } } } } }

  • 任意の座標をクリックさせるには

    任意の座標をクリックさせるには JavaScriptで、Webページ上の適当な場所(座標)を クリックさせられますか。 テキストボックスでもリンクでも画像でもない ただ x=500 Y=500 のポイントをクリック、といった具合に 処理が可能か教えてください。

  • 画像に座標を指定して枠線をつけたい

    jpgやbmpなどの画像に座標を指定して、枠線もしくは色をつけたいのですが、そのようなソフトをご存じないでしょうか。出来ればフリーソフトがありがたいです。(Vista使用)

  • BASICで画像のx,y座標の取得方法について

    Active Basicでプログラムを書いています。 今、簡単なゲームを作ってみようと思い、プログラムを書いているのですが、画像の座標の取得の部分で躓いてしました。 画像Aに画像Bが触れたときに『アウト』とメッセージを出す、簡単な、物を避けるゲームなのですが、グローバルで、 Dim BombRect As RECT Dim HitoRect As RECT を定義して、画像が重なったかどうかを判定するときに、 GetWindowRect(hBmp04,BombRect) GetWindowRect(hBmp01,HitoRect) で、読み込もうとしましたが、座標が格納されてくれません。 hBmp01とhBmp04には、下のようにして画像を読み込みました。 'グローバル Dim hBmp01 As HWND Dim hBmp02 As HWND Dim hBmp03 As HWND Dim hBmp04 As HWND 'ウインドウ作成時 hBmp01 = LoadImage(0,".\画像\人\普通.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE) hBmp02 = LoadImage(0,".\画像\人\右.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE) hBmp03 = LoadImage(0,".\画像\人\左.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE) hBmp04 = LoadImage(0,".\画像\爆弾\ボム.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE) もし、やり方をご存知の方がいらっしゃいましたら、すみませんが、ご教授お願いします。 また、もっと簡単な方法がありましたら、そちらも教えていただけると嬉しいです。