2

私はc#を使用してWindowsアプリケーションを作成しています。画像(デスクトップ画面全体)をキャプチャしてフォルダに保存するボタンがあります。また、画像のプレビューを表示する必要があります。

4

3 に答える 3

3

Graphics.CopyFromScreenメソッド

サンプルコード:

Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Size.Width, Screen.PrimaryScreen.Bounds.Size.Height);
Graphics g = Graphics.FromImage(bmp);
g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size);
g.Save();
bmp.Save("D:\\file.jpg", ImageFormat.Bmp);

プレビューを表示するように。IMOは、自分で書くのはそれほど難しくありません。

于 2011-07-04T14:10:52.183 に答える
1

ここに持ってきたものを実行するには、さまざまな方法があります。クラスを使用して、Screen私がインターネットで見つけたいくつかの簡単なサンプルがあります。他の人はDirect3Dを使用しています。

  1. TeboScreen:基本的なC#スクリーンキャプチャアプリケーション;
  2. スクリーンショットをキャプチャする;
  3. C#–Direct3Dによる画面キャプチャ;
  4. デスクトップ画面をキャプチャします;
  5. C#およびWindowsフォームを使用した.NETの拡張デスクトップレコーダー; (おそらくあなたの質問には適していませんが、さらに機能を計画すると面白いかもしれません。)
  6. C#を使用した画面イメージのキャプチャ

つまり、このアイデアは、Screenクラスまたはお好みの方法を使用してデスクトップの画像を取得し、それをBitmapオブジェクトに保存して、このビットマップをファイルに保存することで構成されます。

プレビューの表示に関しては、Bitmapインスタンスが作成されたら、必要に応じてPictureBoxそのImageプロパティを設定し、ユーザーにフォームを表示して、ユーザーが画像を表示できるようにします。

お役に立てれば!=)

于 2011-07-04T14:09:41.907 に答える
0

Interopdllのインポートを行う必要があります。

次のを見てください。スクリーンショットをキャプチャしてディスクに保存する方法がよくわかります。

public void CaptureScreen(string fileName,ImageFormat imageFormat)
{
    int hdcSrc = User32.GetWindowDC(User32.GetDesktopWindow()),
    hdcDest = GDI32.CreateCompatibleDC(hdcSrc),
    hBitmap = GDI32.CreateCompatibleBitmap(hdcSrc,
    GDI32.GetDeviceCaps(hdcSrc,8),GDI32.GetDeviceCaps(hdcSrc,10));                 GDI32.SelectObject(hdcDest,hBitmap);
    GDI32.BitBlt(hdcDest,0,0,GDI32.GetDeviceCaps(hdcSrc,8),
    GDI32.GetDeviceCaps(hdcSrc,10),hdcSrc,0,0,0x00CC0020);
    SaveImageAs(hBitmap,fileName,imageFormat);
    Cleanup(hBitmap,hdcSrc,hdcDest);
}

上記の例はウェブサイトから抜粋したものです。ペリーリーによるすべてのコード

于 2011-07-04T14:00:21.677 に答える