Estare realizando un ejemplo de como Capturar un Trozo de una pantalla o una pantalla completa con C#.Net, estare explicando paso a paso como realizar esta tarea.
Para eso crearemos una pantalla similar a esta que se refleja en la imagen, la cual contiene los siguientes elementos:
a) 3 Botones (Capturar, Capturar Pantalla Completa, Guardar Imagen)
b) 1 TextBox
c) 1 PictureBox
Luego procedemos a codificar las acciones que queramos que haga este aplicativo, aqui les dejo todo el codigo fuente utilizado:
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.Windows.Forms;
using System.IO;
namespace PrintScreen
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
private void btnGuardar_Click(object sender, EventArgs e)
{
// Si no se indica el formato, se guarda como PNG
//this.picCaptura.Image.Save(this.txtNombre.Text);
if (String.IsNullOrEmpty(this.txtNombre.Text))
{
MessageBox.Show("Debes indicar el nombre del fichero",
"Guardar",
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation);
return;
}
// Usar el formato según la extensión
string ext = Path.GetExtension(this.txtNombre.Text).ToLower();
switch (ext)
{
case ".jpg":
this.picCaptura.Image.Save(this.txtNombre.Text, ImageFormat.Jpeg);
break;
case ".png":
this.picCaptura.Image.Save(this.txtNombre.Text, ImageFormat.Png);
break;
case ".gif":
this.picCaptura.Image.Save(this.txtNombre.Text, ImageFormat.Gif);
break;
case ".bmp":
this.picCaptura.Image.Save(this.txtNombre.Text, ImageFormat.Bmp);
break;
case ".tif":
this.picCaptura.Image.Save(this.txtNombre.Text, ImageFormat.Tiff);
break;
default:
this.picCaptura.Image.Save(this.txtNombre.Text);
break;
}
}
private void btnCapturar_Click(object sender, EventArgs e)
{
// Capturar todo el área del formulario
Graphics gr = this.CreateGraphics();
// Tamaño de lo que queremos copiar
Size fSize = this.Size;
// Creamos el bitmap con el área que vamos a capturar
// En este caso, con el tamaño del formulario actual
Bitmap bm = new Bitmap(fSize.Width, fSize.Height, gr);
// Un objeto Graphics a partir del bitmap
Graphics gr2 = Graphics.FromImage(bm);
// Copiar el área de la pantalla que ocupa el formulario
gr2.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, fSize);
// Asignamos la imagen al PictureBox
this.picCaptura.Image = bm;
// Guardarlo como JPG
//bm.Save("formulario.jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
}
private void btnCapturarPantalla_Click(object sender, EventArgs e)
{
// Capturar toda la pantalla
Graphics gr = this.CreateGraphics();
// Tamaño de lo que queremos copiar
// En este caso el tamaño de la ventana principal
Size fSize = Screen.PrimaryScreen.Bounds.Size;
// Creamos el bitmap
Bitmap bm = new Bitmap(fSize.Width, fSize.Height, gr);
// Un objeto Graphics a partir del bitmap
Graphics gr2 = Graphics.FromImage(bm);
// Copiar todo el área de la pantalla
gr2.CopyFromScreen(0, 0, 0, 0, fSize);
// Asignamos la imagen al PictureBox
this.picCaptura.Image = bm;
}
}
}
Luego de haber programado estos eventos podremos capturar una parte de la pantalla o la pantalla completa, y se reflejara en nuestro control PictureBox, como tambien podemos ponerle un nombre y guardar esa imagen en nuestro ordenador.
RSS FEED
TWITTER
12:04 p. m.
Omar Frometa


Posted in
No Response to "Pint Screen con C# (Capturar una Imagen)"
Publicar un comentario