none
Ekrandan belli bir bölgenin resmini alma RRS feed

  • Soru

  • string KlasorYolu="";
            int artir = 1;
            public Form1()
            {
                InitializeComponent();

            }

            private void button2_Click(object sender, EventArgs e)//dosya yolu al
            {

                FolderBrowserDialog Klasor = new FolderBrowserDialog();
                Klasor.ShowDialog();
                
                KlasorYolu = Klasor.SelectedPath;
            }

            private void button1_Click(object sender, EventArgs e)//çek
            {
                this.Hide();

                Thread.Sleep(100);

                Bitmap foto = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
                Graphics gr = Graphics.FromImage(foto);
                gr.CopyFromScreen(35, 175, 0, 0, new Size (855, 480));

                pictureBox1.Image = foto;

                ////////
                
                string strArtir ="//"+ artir.ToString()+".png";
                string ekle = KlasorYolu + strArtir;


                pictureBox1.Image.Save(ekle);
                ////////
                artir++;
                this.Show();
            } Bu kodlarla resmi kaydediyorum ama belirlediğim bölgenin dışındaki alanlar siyah olarak resme ekleniyor. Resmi açınca kestiğim resim sol üstte diğer taraflar siyah olarak geliyor. Ben sadece belirlediğim bölgenin resmini almasını istiyorum nasıl yapabilirim. Teşekkürler.
    15 Temmuz 2018 Pazar 05:53

Tüm Yanıtlar

  •         int artir = 1;
    
            private void button1_Click(object sender, EventArgs e)
            {
                FolderBrowserDialog Klasor = new FolderBrowserDialog();
                if (Klasor.ShowDialog() == DialogResult.OK)
                {
                    Hide();
                    Thread.Sleep(200);
                    Bitmap foto = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
                    Graphics gr = Graphics.FromImage(foto);
                    gr.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size);
                    Rectangle rect = new Rectangle(0, 0, 855, 480);
                    Bitmap yeniFoto = foto.Clone(rect, foto.PixelFormat);
                    pictureBox1.Image = yeniFoto;
                    pictureBox1.Image.Save(Path.Combine(Klasor.SelectedPath, $"{artir++}.png"), ImageFormat.Png);
                    Show();
                }
            }
    


    Sorunuzun yanıtı bu ise "Yanıt olarak işaretle"yerek siz de forumun işleyişine katkıda bulununuz...

    16 Temmuz 2018 Pazartesi 09:07