C# ScreenShot (Ekran Görüntüsü) Alma

ravex

Ultra Member
Katılım
30 Tem 2019
Konular
217
Mesajlar
656
Tepkime puanı
384
Konum
Turkey
RC Point
0
Bunu programla yapmaya ne gerek var print screen tuşu ile zaten ekran görüntüsünü kaydedebiliyoruz diyebilirsiniz ? haklısınız da, C# ile ekran görüntüsü alarak direk bir dosya olarak istediğimiz formatta kaydedebiliriz png,bmp,jpg bunun için ek bir programa gerek yok. Bu işlemi yapabilmek için Aşağıdaki gibi bir form tasarlıyacağız.. Form üzerine bir buton ekliyoruz daha sonrada saveFileDialog nesnesi ekliyoruz. ..
saveFileDialog nesnesinin Filter özelliğini “BMP|*.bmp|PNG|*.png|JPEG|*.jpg” yazıyoruz bunlar kaydedebileceğimiz resim uzantıları.
Daha sonra kod bölümüne geçip

C#:
using System.Drawing.Imaging;
using System.Threading;
kütüphanelerini çalışmamıza ekiyoruz ve sonra aldığımız görüntüyü kayıt edebilmek için
C#:
ImageFormat img; Bitmap bt; Graphics screenShot;
değişkenlerini buton click olayının hemen üstüne tanımladıktan sonra buton clik olayının içine

C#:
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{   //Formu gizledik
this.Hide();
//  Ekran görüntüsünü almak için Formu 500  milisaniye gizliyoruz
Thread.Sleep(500);
//Ekran boyutuna göre görüntü ayarladık
bt = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);
// Görüntü (bt) için grafik nesnesi oluşturur.
screenShot = Graphics.FromImage(bt);
// Ekran görüntüsünü alır.
screenShot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size,CopyPixelOperation.SourceCopy);
switch (saveFileDialog1.FilterIndex)
{
    case 0: img = ImageFormat.Bmp; break;
    case 1: img = ImageFormat.Png; break;
    case 2: img = ImageFormat.Jpeg; break;
}
// Görüntüyü kaydeder.
bt.Save(saveFileDialog1.FileName, img);
// Dosyayı kaydettikten sonra  Formu tekrar gösteriyoruz.
this.Show();
}






 
Üst