YOMEDIA
Chụp màn hình bằng C#
Chia sẻ: Lại Văn Nghĩa
| Ngày:
| Loại File: DOC
| Số trang:4
451
lượt xem
57
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Chụp màn hình bằng C#. Cập nhật: 27/8/2008 với no comments Xếp trong: Lập trình, C# Bài viết này sẽ chỉ cho bạn một phương pháp rất đơn giản để chộp được ảnh màn hình về bằng cách sử dụng
AMBIENT/
Chủ đề:
Nội dung Text: Chụp màn hình bằng C#
- Chụp màn hình bằng C#.
Cập nhật: 27/8/2008 với no comments
Xếp trong: Lập trình, C#
Bài viết này sẽ chỉ cho bạn một phương pháp rất đơn giản để chộp được ảnh màn
hình về bằng cách sử dụng mã C# và lưu chúng vào các file với các định dạng khác
nhau như PNG, tất cả nhờ vào phương thức CopyFromScreen() . Trên mạng cũng có
một số bài viết...
Bài viết này sẽ chỉ cho bạn một phương pháp rất đơn giản để chộp được ảnh màn
hình về bằng cách sử dụng mã
C# và lưu chúng vào các file với các định dạng khác nhau như PNG, tất cả nhờ vào
phương thức
CopyFromScreen() .
Trên mạng cũng có một số bài viết chỉ cho bạn làm cách nào để chộp màn hình giống
như việc chúng ta tạo và lưu vào
trong clipboard khi nhấn phím "PrintScreen". Tuy nhiên, bạn sẽ phát hiện ra rằng
những bài viết này quá phức tạp
với một công việc hết sức đơn giản. Trong bài viết này chúng ta sẽ thực hiện điều
tương tự mà những bài viết đó
làm, nhưng chỉ với một vài dòng mã nhờ có .NET Framework, mà tôi sẽ hướng dẫn ở
đây là phương thức
CopyFromScreen().
Khởi động bằng việc tạo một project ứng dụng Windows trong Visual Studio. Thêm
vào trên form một nút btnCapture và một điều khiển SaveFileDialog đặt tên là
saveScreenshot, dùng để nhắc người dùng lựa chọn nơi lưu trữ ảnh chụp được về.
Bây giờ, chúng ta chuyển sang chế độ mã và thêm vào câu lệnh using dưới đây:
view plainprint?
1. using System.Drawing.Imaging;
Ngoài ra, bên trong class ta khai báo thêm hai đối tượng mà chúng ta sẽ dùng nó để
chộp và lưu giữ hình ảnh.
- view plainprint?
1. private static Bitmap bmpScreenshot;
2. private static Graphics gfxScreenshot;
Nút btnCapture- là nơi mọi thứ xảy ra khi phát sinh sự kiện click. Vì thế bên trong
phần thiết kế của Visual Studio, nhấn đúp chuột vào nút và sự kiện Click được tạo ra.
Trong đó, chúng ta viết mã như sau:
view plainprint?
1. // If the user has chosen a path where to save the screenshot
2. if (saveScreenshot.ShowDialog() == DialogResult.OK)
3. {
4. // Hide the form so that it does not appear in the screenshot
5. this.Hide();
6. // Set the bitmap object to the size of the screen
7. bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.Pri
maryScreen.Bounds.Height, PixelFormat.Format32bppArgb);
8. // Create a graphics object from the bitmap
9. gfxScreenshot = Graphics.FromImage(bmpScreenshot);
10. // Take the screenshot from the upper left corner to the right bottom corner
11. gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.Prim
aryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperati
on.SourceCopy);
12. // Save the screenshot to the specified path that the user has chosen
13. bmpScreenshot.Save(saveScreenshot.FileName, ImageFormat.Png);
14. // Show the form again
15. this.Show();
16. }
Như bạn thấy trong phần mã ở trên, việc đầu tiên chúng ta làm là hiển thị lên hộp
thoại cho người dùng để người dùng lựa chọn đường dẫn muốn lưu lại các ảnh chụp
được. Tiếp theo chúng ta phải làm công việc ẩn form để nó không xuất hiện trong ảnh
chộp về. Sau đó, chúng ta định nghĩa hai đối tượng đã khai báo trước đó với thông tin
vè kích thước ảnh/screenshot (là kích cỡ màn hình làm việc). Hình ảnh được chụp cụ
thể là khi phương thức CopyFromScreen được gọi với các tham số tương ứng. Tiếp
đến đối tượng Bitmap lưu nó theo đường dẫn và định dạng đã được chỉ ra. Chúng ta
chọn PNG bởi vì đó là định dạng tốt nhất, tuy nhiên bạn có thể chọn những định dạng
phổ biến khác như Bmp, gif, jpeg, tiff, vv...
- Đó là những gì cần thiết để cho bạn chụp màn hình và lưu lại hình ảnh trong .NET.
Bạn có thể xem toàn bộ mã nguồn trong file Form1.cs như ở đây:
view plainprint?
1. using System;
2. using System.Collections.Generic;
3. using System.ComponentModel;
4. using System.Data;
5. using System.Drawing;
6. using System.Text;
7. using System.Windows.Forms;
8. using System.Drawing.Imaging;
9. namespace ScreenshotCapturer
10. {
11. public partial class Form1 : Form
12. {
13. private static Bitmap bmpScreenshot;
14. private static Graphics gfxScreenshot;
15. public Form1()
16. {
17. InitializeComponent();
18. }
19. private void btnCapture_Click(object sender, EventArgs e)
20. {
21. // If the user has choosed a path where to save the screenshot
22. if (saveScreenshot.ShowDialog() == DialogResult.OK)
23. {
24. // Hide the form so that it does not appear in the screenshot
25. this.Hide();
26. // Set the bitmap object to the size of the screen
27. bmpScreenshot = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Sc
reen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);
28. // Create a graphics object from the bitmap
29. gfxScreenshot = Graphics.FromImage(bmpScreenshot);
30. // Take the screenshot from the upper left corner to the right bottom cor
ner
31. gfxScreenshot.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Scre
en.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixel
Operation.SourceCopy);
32. // Save the screenshot to the specified path that the user has chosen
33. bmpScreenshot.Save(saveScreenshot.FileName, ImageFormat.Png);
34. // Show the form again
35. this.Show();
36. }
37. }
- 38. }
39. }
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.100:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...