WPF 画面のスクリーンショットを取得する

アプリ開発

幅と高さを指定してスクリーンショットを取得する事が出来ます。

using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Windows;
using System.Windows.Media.Imaging;

namespace WpfApp1
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }

        private void Button_Click(object sender, RoutedEventArgs e)
        {
            // 矩形領域
            var rectangle = new Rectangle(0, 0, (int)sliderH.Value, (int)sliderV.Value);
            var bitmap = new Bitmap(rectangle.Width, rectangle.Height);
            var graphics = Graphics.FromImage(bitmap);
            graphics.CopyFromScreen(new System.Drawing.Point(rectangle.X, rectangle.Y), new System.Drawing.Point(0, 0), bitmap.Size);
            // グラフィックスの解放
            graphics.Dispose();

            // 画像の表示
            using (var stream = new MemoryStream())
            {
                bitmap.Save(stream, ImageFormat.Png);
                stream.Seek(0, SeekOrigin.Begin);
                image.Source = BitmapFrame.Create(stream, BitmapCreateOptions.None, BitmapCacheOption.OnLoad);
            }
        }
    }
}

ソースコード

スポンサーリンク

参考

C#での画面キャプチャの取得方法を徹底解説! | .NETコラム
C#で画面キャプチャの取得方法をご存知でしょうか。ここでは、スクリーン全体、アクティブウィンドウ、矩形領域などのキャプチャ方法について紹介します。C#での画面キャプチャについて整理しましたので、興味のある方はぜひご覧ください。
C#でBitmapで描いた画像をImageコントロールに表示してみた
C#でBitmapに描いた画像をImageコントロールに表示する方法を解説します。サンプルコード付きです。
タイトルとURLをコピーしました