nhưC#: làm thế nào để có một ảnh chụp màn hình của một phần của màn hình
TakeScreenshot(new Rectangle(0,0,100,100), "output.jpg");
nhưC#: làm thế nào để có một ảnh chụp màn hình của một phần của màn hình
TakeScreenshot(new Rectangle(0,0,100,100), "output.jpg");
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);
"PixelFormat.Format32bppArgb" là gì? –
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. –
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 :) –
Bạn đã kiểm tra phương pháp Graphics.CopyFromScreen?
Sử dụng phương pháp Graphics.CopyFromScreen
. Google bật lên this tutorial.
Đâ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);
Bạn cần phải xác định là nó WinForms, WPF hoặc Silverlight. – alxx
Tôi đang cố gắng tạo phương thức này trong thư viện lớp học –