2010-07-22 3 views

Trả lời

24

Sử dụng như sau:

 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); 
+0

"PixelFormat.Format32bppArgb" là gì? –

+1

PixelFormat.Format32bppArgb chỉ định định dạng là 32 bit cho mỗi pixel; 8 bit được sử dụng cho các thành phần alpha, red, green và blue. –

+0

cảm ơn! Đây là kết thúc với những gì tôi cần vì vậy tôi chấp nhận câu trả lời này :) –

12

Đây là mã để chụp màn hình. Thay đổi giá trị thành kích thước bạn cần.

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); 

Hoặc thực hiện phương pháp đó sẽ đưa bạn trở captured image như thế này:

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);