none
Pantallazo para ventana RRS feed

  • Pregunta

  • Buenas, tengo un problema. Necesito sacar un pantallazo pero solo a la ventana compilada con un botón y guardarlo con otro botón. Los codigos que encuentro sacan pantallazo a toda la pantalla y no es lo que necesito.

    Se los agradecería mucho.

    domingo, 19 de noviembre de 2017 16:22

Respuestas

  • Hola Kerplunk97, entiendo de tu consulta que deseas generar una imagen del form? Si estó es así puede ocupar un bitmap y pasarle las coordenadas del form y mediante un graphic el ancho y alto para luego capturar la imagen ej:

    A nivel folumario colocamos un bool y un bitmap

    public partial class Form1 : Form { public Bitmap bm; public bool Carga = false; public Form1()

    //...........

    Luego en el button1 capturamos la inagen

      private void button1_Click(object sender, EventArgs e)
            {
                Size ImSize = new Size(this.Width - 12, this.Height - 10);
                Graphics grap =  this.CreateGraphics();
    
                bm = new Bitmap(ImSize.Width, ImSize.Height, grap);
                Graphics grap2 = Graphics.FromImage(bm);
                grap2.CopyFromScreen(this.Location.X + 6, this.Location.Y, 0, 0, ImSize);
                Carga = true;
            }

    Por úllitmo salvamos la imagen

     private void button2_Click(object sender, EventArgs e)
            {
                if( textBox1.Text == "")
                    {
                    MessageBox.Show("Debes colocar un nombre a la imagen");
                    textBox1.Focus();
                    return;
                }    
            if( Carga)
              {
                    bm.Save(Application.StartupPath + "\\" + textBox1.Text + ".JPEG", System.Drawing.Imaging.ImageFormat.Jpeg);
                }
              Carga = false;
            }

    Como ves, se necesita cargar un nombre antes de salvar la imagen esto en el textbox, segun la configuración de pantalla deberás ajustar los point del grafico y el ancho y largo (Estan en Negrita)

    Espero se esto lo que buscas

    Saludos

    lunes, 20 de noviembre de 2017 3:04

Todas las respuestas

  • Hola Kerplunk97, entiendo de tu consulta que deseas generar una imagen del form? Si estó es así puede ocupar un bitmap y pasarle las coordenadas del form y mediante un graphic el ancho y alto para luego capturar la imagen ej:

    A nivel folumario colocamos un bool y un bitmap

    public partial class Form1 : Form { public Bitmap bm; public bool Carga = false; public Form1()

    //...........

    Luego en el button1 capturamos la inagen

      private void button1_Click(object sender, EventArgs e)
            {
                Size ImSize = new Size(this.Width - 12, this.Height - 10);
                Graphics grap =  this.CreateGraphics();
    
                bm = new Bitmap(ImSize.Width, ImSize.Height, grap);
                Graphics grap2 = Graphics.FromImage(bm);
                grap2.CopyFromScreen(this.Location.X + 6, this.Location.Y, 0, 0, ImSize);
                Carga = true;
            }

    Por úllitmo salvamos la imagen

     private void button2_Click(object sender, EventArgs e)
            {
                if( textBox1.Text == "")
                    {
                    MessageBox.Show("Debes colocar un nombre a la imagen");
                    textBox1.Focus();
                    return;
                }    
            if( Carga)
              {
                    bm.Save(Application.StartupPath + "\\" + textBox1.Text + ".JPEG", System.Drawing.Imaging.ImageFormat.Jpeg);
                }
              Carga = false;
            }

    Como ves, se necesita cargar un nombre antes de salvar la imagen esto en el textbox, segun la configuración de pantalla deberás ajustar los point del grafico y el ancho y largo (Estan en Negrita)

    Espero se esto lo que buscas

    Saludos

    lunes, 20 de noviembre de 2017 3:04
  • esta tambien te pueda ayudar

    ScreenCapture sc = new ScreenCapture();
    // capture entire screen, and save it to a file
    Image img = sc.CaptureScreen();
    // display image in a Picture control named imageDisplay
    this.imageDisplay.Image = img;
    // capture this window, and save it
    sc.CaptureWindowToFile(this.Handle,"C:\\captura.gif",ImageFormat.Gif);

    http://www.developerfusion.com/code/4630/capture-a-screen-shot/ el control que sirve de captura

    viernes, 24 de noviembre de 2017 16:55