comoC#: cómo tomar una captura de pantalla de una parte de la pantalla
TakeScreenshot(new Rectangle(0,0,100,100), "output.jpg");
comoC#: cómo tomar una captura de pantalla de una parte de la pantalla
TakeScreenshot(new Rectangle(0,0,100,100), "output.jpg");
Usar la siguiente:
Rectangle rect = new Rectangle(0, 0, 100, 100);
Bitmap bmp = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppArgb);
Graphics g = Graphics.FromImage(bmp);
g.CopyFromScreen(rect.Left, rect.Top, 0, 0, bmp.Size, CopyPixelOperation.SourceCopy);
bmp.Save(fileName, ImageFormat.Jpeg);
para qué es "PixelFormat.Format32bppArgb"? –
PixelFormat.Format32bppArgb especifica que el formato es de 32 bits por píxel; 8 bits cada uno se utilizan para los componentes alfa, rojo, verde y azul. –
gracias! este es el cierre para lo que necesito así que estoy aceptando esta respuesta :) –
Ha comprobado el método Graphics.CopyFromScreen?
Utilice el método Graphics.CopyFromScreen
. Google aparece this tutorial.
Aquí está el código para capturar la pantalla. Cambie los valores al tamaño que necesita.
Bitmap printscreen = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
Graphics graphics = Graphics.FromImage(printscreen as Image);
graphics.CopyFromScreen(0, 0, 0, 0, printscreen.Size);
printscreen.Save(@"C:\printscreen.jpg", ImageFormat.Jpeg);
O hacer método que le devolverá la imagen capturada de esta manera:
Image CaptureScreen(int sourceX, int sourceY, int destX, int destY,
Size regionSize)
{
Bitmap bmp = new Bitmap(regionSize.Width, regionSize.Height);
Graphics g = Graphics.FromImage(bmp);
g.CopyFromScreen(sourceX, sourceY, destX, destY, regionSize);
return bmp;
}
......
// call
Image image = CaptureScreen(sourceX, sourceY, destX, destY, regionSize);
image.Save(@"C:\Somewhere\screen.jpg);
Es necesario especificar que es WinForms, WPF o Silverlight. – alxx
Estoy intentando crear este método en una biblioteca de clases –