intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

GDI+ - ThS. Nguyễn Hà Giang

Chia sẻ: Trần Tâm | Ngày: | Loại File: PDF | Số trang:0

70
lượt xem
10
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

GDI: Graphical Device Interface GDI+ là API (Application programming interface) cung cấp các lớp cho phép Tạo những đồ họa 2D vector Thao tác trên font, chuỗi ký tự Hiển thị các đường, hình và ảnh… Thư viện FCL chứa các lớp thao tác vẽ trong namespace System.Drawing Tất cả các thao tác tô vẽ trên GUI đều thực hiện bởi chức năng GDI+

Chủ đề:
Lưu

Nội dung Text: GDI+ - ThS. Nguyễn Hà Giang

  1. GDI+ ThS. Nguyễn Hà Giang Khoa CNTT 1
  2. Nội Dung GDI+ n Chương trình vẽ cơ bản trên Form n Lớp Graphics và hàm OnPaint() n Lớp Color và Font n Lớp Pen và Brush n Các hàm vẽ đường thẳng, hình chữ nhật, ellipse n Các hàm vẽ cung, đa giác n Hiển thị ảnh n Minh họa Multimedia n 2 Nguyen Ha Giang - 2008
  3. GDI+ GDI: Graphical Device Interface n GDI+ là API (Application programming interface) n cung cấp các lớp cho phép Tạo những đồ họa 2D vector q Thao tác trên font, chuỗi ký tự q Hiển thị các đường, hình và ảnh… q Thư viện FCL chứa các lớp thao tác vẽ trong n namespace System.Drawing q Tất cả các thao tác tô vẽ trên GUI đều thực hiện n bởi chức năng GDI+ 3 Nguyen Ha Giang - 2008
  4. System.Drawing System.Drawing class Font Color FontFamily structure Point Graphics Rectangle Icon Size Pen Region SolidBrush HatchBrush TextureBrush LinearGradientBrush Image PathGradientBrush Brush SolidBrush TextureBrush 4 Nguyen Ha Giang - 2008
  5. Vẽ trên Form public partial class Form1 : Form { public Form1() { InitializeComponent(); } protected override void OnPaint(PaintEventArgs e) { Graphics g = e.Graphics; g.DrawString("Hello GDI!", Font, Brushes.Red, 20, 20); } } 5 Nguyen Ha Giang - 2008
  6. Graphics Lớp Graphics thể hiện n “Abstract” drawing surface q Tập hợp những “tool” cho phép thao tác trên q surface đó Để lấy đối tượng Graphics n Sử dụng thuộc tính Graphics được truyền cho q OnPaint() Sử dụng phương thức CreateGraphics() của q control Lấy từ đối tượng dẫn xuất từ Bitmap q Gọi hàm Invalidate() thay vì OnPaint() n 6 Nguyen Ha Giang - 2008
  7. Lấy đối tượng Graphics protected override void OnPaint(PaintEventArgs paintevent) { Graphics graf=paintevent.Graphics; } Từ tham số PaintEventAtgs private private void mainForm_Paint(object sender, PaintEventArgs paintevent) { Graphics graf=paintevent.Graphics; } 7 Nguyen Ha Giang - 2008
  8. Lấy đối tượng Graphics private void PaintMe(Control testcontrol) { Graphics graf=testcontrol.CreateGraphics(); ... } Lấy từ control protected protected override void OnPaint(PaintEventArgs paintevent) { Bitmap bmpimage=new Bitmap("hutech.jpg"); Graphics graf = Graphics.FromImage (bmpimage); ... } Lấy từ ảnh 8 Nguyen Ha Giang - 2008
  9. DrawString() method Hiển thị text trong Graphics cụ thể n Có nhiều phiên bản q DrawString( String text, // Text thể hiện q Font f, // Font Brush b, // Color & texture float x, float y);// vị trí góc trái trên Tham số Font và Brush không có mặc định nên q phải truyền vào. 9 Nguyen Ha Giang - 2008
  10. Tọa độ hệ thống Gốc tọa độ (0,0) (w,0) (w1,0) (0,0) Control (0,h1) (w1,h1) Form, Panel, GroupBox (0,h) (w,h) 10 Nguyen Ha Giang - 2008
  11. Tọa độ hệ thống Graphics.PageUnit: xác định đơn vị của bề mặt n GraphicsUnit.Pixel (default) q GraphicsUnit.Inch q GraphicsUnit.Milimeter q GraphicsUnit.Point q Graphics.PageScale: tỷ lệ output n g.PageScale = 1f (default) q 11 Nguyen Ha Giang - 2008
  12. Color Sử dụng màu được định nghĩa trong Color n Color.Blue, Color.Red, Color.White… q Sử dụng màu định nghĩa cho hệ thống n SystemColors.Control, SystemColors.ControlText… q Sử dụng màu ARGB n 32 bit để thể hiện màu q A (alpha) thể hiện mức độ trong suốt (255 opaque) q RGB là Red, Green và Blue q Tạo màu sử dụng hàm FromArgb() q Color red = Color.FromArgb(255,0,0); n Color blue = Color.FromArgb(128, 0, 255, 0); n 12 Nguyen Ha Giang - 2008
  13. Font Cách tạo đối tượng Font: new Font(…) n Có 13 phiên bản của constructor q Size = 8 pixel Font fa = new Font("Times New Roman", 8); q Font fb = new Font("Arial", 36, FontStyle.Bold); Font fc = new Font(fb, FontStyle.Bold | FontStyle.Italic); Font fd = new Font("Arial", 1, GraphicsUnit.Inch); Size = 1 inch Nếu tên font không tìm thấy thì font mặc định được q sử dụng. 13 Nguyen Ha Giang - 2008
  14. Font 14 Nguyen Ha Giang - 2008
  15. Font Demo n Time New Roman, 14 Arial, 36 Arial, Bold, Italic, 36 Impact, 1 inch 15 Nguyen Ha Giang - 2008
  16. Pen Xác định width, style, fill style n Không cho kế thừa, nhưng tạo thể hiện được n Trong namespace System.Drawing n Pen p1 = new Pen(Color.Green); q Pen p2 = new Pen(Color.blue, 10); Sử dụng lớp Pens có 141 pen được định nghĩa n trước. Pen p3 = Pens.Violet; q 16 Nguyen Ha Giang - 2008
  17. Pen 17 Nguyen Ha Giang - 2008
  18. Brush Dùng để tô vùng bên trong của hình n Lớp Brush là lớp abstract nên không n tạo thể hiện Sử dụng các lớp kế thừa sau để tạo n brush SolidBrush q LinearGradientBrush q TextureBrush q HatchBrush q Sử dụng lớp Brushes định nghĩa n trước các brush. 18 Nguyen Ha Giang - 2008
  19. Brush Solid Hatch LinearGradient Texture 19 Nguyen Ha Giang - 2008
  20. Bursh Demo n Solid Hatch LinearGradient Texture 20 Nguyen Ha Giang - 2008
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2