Thông tin tài liệu
Khoa CNTT CNPM LẬP TRÌNH ĐỒ HỌA GDI+ Phạm Hoàng Hải C# - Khoa CNTT CNPM LẬP TRÌNH ĐỒ HỌA GDI+ GDI+ Chương trình vẽ Form Lớp Graphics hàm OnPaint() Lớp Color Font Lớp Pen Brush Các hàm vẽ đường thẳng, hình chữ nhật, ellipse Các hàm vẽ cung, đa giác Hiển thị ảnh Minh họa Multimedia Phạm Hoàng Hải C# - Khoa CNTT CNPM LẬP TRÌNH ĐỒ HỌA GDI+ GDI: Graphical Device Interface GDI+ API (Application programming interface) cung cấp lớp cho phép Tạo đồ họa 2D vector Thao tác font, chuỗi ký tự Hiển thị đường, hình ảnh… Thư viện FCL chứa lớp thao tác vẽ namespace System.Drawing Tất thao tác tô vẽ GUI thực chức GDI+ Phạm Hoàng Hải C# - Khoa CNTT CNPM LẬP TRÌNH ĐỒ HỌA GDI+ SYSTEM.DRAWING System.Drawing Font Graphics Color Point Rectangle Icon Size Pen Region HatchBrush Image Brush LinearGradientBrush PathGradientBrush SolidBrush TextureBrush class structure Phạm Hoàng Hải C# - Khoa CNTT CNPM 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); } } Phạm Hoàng Hải C# - Khoa CNTT CNPM TỌA ĐỘ HỆ THỐNG Gốc tọa độ (0,0) (w,0) (0,0) Form, Panel, GroupBox, File Bitmap … (0,h1) (w1,0) Control (w1,h1) (0,h) Phạm Hoàng Hải (w,h) C# - Khoa CNTT CNPM TỌA ĐỘ HỆ THỐNG Graphics.PageUnit: xác định đơn vị bề mặt GraphicsUnit.Pixel (default) GraphicsUnit.Inch GraphicsUnit.Milimeter GraphicsUnit.Point Graphics.PageScale: tỷ lệ output g.PageScale = 1f (default) Phạm Hoàng Hải C# - Khoa CNTT CNPM ĐỐI TƯỢNG GRAPHICS Lớp Graphics thể “Abstract” drawing surface Tập hợp “tool” cho phép thao tác surface Để lấy đối tượng Graphics Sử dụng thuộc tính Graphics truyền cho OnPaint() Sử dụng phương thức CreateGraphics() control Lấy từ đối tượng dẫn xuất từ Bitmap Gọi hàm Invalidate() thay OnPaint() Phạm Hoàng Hải C# - Khoa CNTT CNPM LẤY ĐỐI TƯỢNG GRAPHICS protected override void OnPaint(PaintEventArgs paintevent) { Graphics graf=paintevent.Graphics; } Từ tham số PaintEventAtgs private void mainForm_Paint(object sender, PaintEventArgs paintevent) { Graphics graf=paintevent.Graphics; } Phạm Hoàng Hải C# - Khoa CNTT CNPM LẤY ĐỐI TƯỢNG GRAPHICS private void PaintMe(Control testcontrol) { Graphics graf=testcontrol.CreateGraphics(); } Lấy từ control protected override void OnPaint(PaintEventArgs paintevent) { Bitmap bmpimage=new Bitmap(1024,768); Graphics graf = Graphics.FromImage (bmpimage); Lấy từ } ảnh Phạm Hoàng Hải C# - 10 Khoa CNTT CNPM BÚT VẼ - PEN Xác định width, style, fill style Không cho kế thừa, tạo thể Trong namespace System.Drawing Pen p1 = new Pen(Color.Green); Pen p2 = new Pen(Color.blue, 10); Sử dụng lớp Pens có 141 pen định nghĩa trước Pen p3 = Pens.Violet; Phạm Hoàng Hải C# - 20 Khoa CNTT CNPM BÚT VẼ - PEN Phạm Hoàng Hải C# - 21 Khoa CNTT CNPM LINE – RECTANGLE - ELLIPSE DrawLine DrawRectangle (Pen p, int x, int y, int width, int height) FillRectangle (Pen p, int x, int y, int width, int height) DrawEllipse (Pen p, int x1, int y1, int x2, int y2) (Brush b, int x, int y, int width, int height) FillEllipse (Brush b, int x, int y, int width, int height) Phạm Hoàng Hải C# - 22 Khoa CNTT CNPM LINE – RECTANGLE - ELLIPSE Phạm Hoàng Hải C# - 23 Khoa CNTT CNPM IMAGE Lớp Image hiển thị ảnh bitmap Các dạng ảnh: *.bmp, *.gif, *.jpg, *.ico… Phương thức static FromFile tạo ảnh từ file Image img = Image.FromFile(“hutech.bmp”); Image img2 = Image.FromFile(“hutech.gif”); Phương thức DrawImage xuất ảnh lên Graphics g.DrawImage(img, 10, 10); G.DrawImage(img2, 10, 10, 100,100); // scale hình chữ nhật kích thước 100x100 Phạm Hoàng Hải C# - 24 Khoa CNTT CNPM IMAGE Phạm Hoàng Hải C# - 25 Khoa CNTT CNPM IMAGE Ellipse vẽ lên ảnh, sau với vẽ ảnh lên Form Phạm Hoàng Hải C# - 26 Khoa CNTT CNPM MINH HỌA Hiệu chỉnh màu nền: Override phương thức OnPaintBackground Form Phạm Hoàng Hải C# - 27 Khoa CNTT CNPM MULTIMEDIA Tạo ứng dụng chứa Windows Media Player control cho phép Play file video sound theo nhiều dạng format MPEG (Motion Pictures Expert Group): video AVI (Audio-video Interleave): video WAV (Windows Wave-file Format): audio MIDI (Musical Instrument Digital Interface): audio Phạm Hoàng Hải C# - 28 Khoa CNTT CNPM MULTIMEDIA Bước 1: bổ sung Windows Media Player vào ToolBox Kích chuột phải vào ToolBox → chọn Choose Items… Trong Dialog Choose Toolbox Items chọn COM Components Chọn Windows Media Player Khi control WMP ToolBox Phạm Hoàng Hải C# - 29 Khoa CNTT CNPM MULTIMEDIA Bước 2: kéo Windows Media Player thả vào Form Thiết lập Dock = Fill Dock = Fill Đổi tên control thành WMPlayer Phạm Hoàng Hải C# - 30 Khoa CNTT CNPM MULTIMEDIA Bước 3: Tạo MenuStrip để bổ sung chức Open File media Phạm Hoàng Hải C# - 31 Khoa CNTT CNPM MULTIMEDIA Bước 4: viết trình xử lý cho Menuitem Open Phạm Hoàng Hải C# - 32 Khoa CNTT CNPM MULTIMEDIA Demo Phạm Hoàng Hải C# - 33 Khoa CNTT CNPM HỎI ĐÁP Phạm Hoàng Hải C# - 34 [...]... SolidBrush LinearGradientBrush TextureBrush HatchBrush Sử dụng lớp Brushes định nghĩa trước các brush Phạm Hoàng Hải C# - 17 Khoa CNTT CNPM CHỔI VẼ - BRUSH Phạm Hoàng Hải C# - 18 Khoa CNTT CNPM 2 LẬP TRÌNH ĐỒ HỌA GDI+ Solid Hatch LinearGradient Texture Phạm Hoàng Hải C# - 19 Khoa CNTT CNPM BÚT VẼ - PEN Xác định width, style, fill style Không cho kế thừa, nhưng tạo thể hiện được Trong namespace System.Drawing... 29 Khoa CNTT CNPM MULTIMEDIA Bước 2: kéo Windows Media Player thả vào Form Thiết lập Dock = Fill Dock = Fill Đổi tên control thành WMPlayer Phạm Hoàng Hải C# - 30 Khoa CNTT CNPM MULTIMEDIA Bước 3: Tạo MenuStrip để bổ sung chức năng Open File media Phạm Hoàng Hải C# - 31 Khoa CNTT CNPM MULTIMEDIA Bước 4: viết trình xử lý cho Menuitem Open Phạm Hoàng Hải C# - 32 Khoa CNTT CNPM MULTIMEDIA Demo... thước 100x100 Phạm Hoàng Hải C# - 24 Khoa CNTT CNPM IMAGE Phạm Hoàng Hải C# - 25 Khoa CNTT CNPM IMAGE Ellipse được vẽ lên ảnh, rồi sau đó với vẽ ảnh lên Form Phạm Hoàng Hải C# - 26 Khoa CNTT CNPM MINH HỌA Hiệu chỉnh màu nền: Override phương thức OnPaintBackground của Form Phạm Hoàng Hải C# - 27 Khoa CNTT CNPM MULTIMEDIA Tạo ứng dụng chứa Windows Media Player control cho phép Play các file video
Ngày đăng: 22/01/2016, 18:23
Xem thêm: Lập trình đồ họa GDI+