Kĩ thuật lập trình - GDI+

Tài liệu Kĩ thuật lập trình - GDI+: GDI+ThS. Nguyễn Hà GiangKhoa CNTT - Hutech1Nội DungGDI+Chương trình vẽ cơ bản trên FormLớp Graphics và hàm OnPaint()Lớp Color và FontLớp Pen và BrushCác hàm vẽ đường thẳng, hình chữ nhật, ellipseCác hàm vẽ cung, đa giácHiển thị ảnhMinh họa Multimedia2GDI+GDI: Graphical Device InterfaceGDI+ là API (Application programming interface) cung cấp các lớp cho phép Tạo những đồ họa 2D vectorThao tác trên fontHiển thị các ảnhThư viện FCL chứa các lớp thao tác vẽ trong namespaceSystem.DrawingTất cả các thao tác tô vẽ trên form đều thực hiện bởi chức năng GDI+3System.DrawingstructureclassSystem.DrawingFontFontFamilyGraphicsIconPenRegionSolidBrushTextureBrushImageBrushHatchBrushLinearGradientBrushPathGradientBrushSolidBrushTextureBrushColorPointRectangleSize4Vẽ 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); } }5GraphicsLớp Grap...

ppt38 trang | Chia sẻ: Khủng Long | Lượt xem: 1051 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Kĩ thuật lập trình - GDI+, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
GDI+ThS. Nguyễn Hà GiangKhoa CNTT - Hutech1Nội DungGDI+Chương trình vẽ cơ bản trên FormLớp Graphics và hàm OnPaint()Lớp Color và FontLớp Pen và BrushCác hàm vẽ đường thẳng, hình chữ nhật, ellipseCác hàm vẽ cung, đa giácHiển thị ảnhMinh họa Multimedia2GDI+GDI: Graphical Device InterfaceGDI+ là API (Application programming interface) cung cấp các lớp cho phép Tạo những đồ họa 2D vectorThao tác trên fontHiển thị các ảnhThư viện FCL chứa các lớp thao tác vẽ trong namespaceSystem.DrawingTất cả các thao tác tô vẽ trên form đều thực hiện bởi chức năng GDI+3System.DrawingstructureclassSystem.DrawingFontFontFamilyGraphicsIconPenRegionSolidBrushTextureBrushImageBrushHatchBrushLinearGradientBrushPathGradientBrushSolidBrushTextureBrushColorPointRectangleSize4Vẽ 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); } }5GraphicsLớp Graphics thể hiện“Abstract” drawing surfaceTập hợp những “tool” cho phép thao tác trên surface đóĐể lấy đối tượng GraphicsSử dụng thuộc tính Graphics được truyền cho OnPaint()Sử dụng phương thức CreateGraphics() của controlLấy từ đối tượng dẫn xuất từ BitmapGọi hàm Invalidate() thay vì OnPaint()Graphics6Lấy đối tượng Graphicsprotected override void OnPaint(PaintEventArgs paintevent){ Graphics graf=paintevent.Graphics;}private void mainForm_Paint(object sender, PaintEventArgs paintevent){ Graphics graf=paintevent.Graphics;}Từ tham số PaintEventAtgs7Lấy đối tượng Graphicsprivate void PaintMe(Control testcontrol){ Graphics graf=testcontrol.CreateGraphics(); . . . }protected override void OnPaint(PaintEventArgs paintevent){ Bitmap bmpimage=new Bitmap("hutech.jpg"); Graphics graf = Graphics.FromImage (bmpimage); ...}Lấy từ controlLấy từ ảnh8DrawString() methodHiển thị text trong Graphics cụ thểCó nhiều phiên bảnDrawString( String text, // Text thể hiện Font f, // Font Brush b, // Color & texture Float x, y); // vị trí góc trái trênTham số Font và Brush không có mặc định nên phải truyền vào.9Tọa độ hệ thống(0,0)(w,0)(0,h)(w,h)Gốc tọa độ(0,0)(w1,0)(0,h1)(w1,h1)Form, Panel, GroupBoxControl10Tọa độ hệ thốngGraphics.PageUnit: xác định đơn vị của bề mặtGraphicsUnit.Pixel (default)GraphicsUnit.InchGraphicsUnit.MilimeterGraphicsUnit.PointGraphics.PageScale: tỷ lệ outputg.PageScale = 1f (default)11ColorSử dụng màu được định nghĩa trong ColorColor.Blue, Color.Red, Color.WhiteSử dụng màu định nghĩa cho hệ thốngSystemColors.Control, SystemColors.ControlTextSử dụng màu ARGB32 bit để thể hiện màuA (alpha) thể hiện mức độ trong suốt (255 opaque)RGB là Red, Green và BlueTạo màu sử dụng hàm FromArgb()Color red = Color.FromArgb(255,0,0);Color blue = Color.FromArgb(128, 0, 255, 0);12FontCách tạo đối tượng Font: new Font()Có 13 phiên bản của constructorFont fa = new Font("Times New Roman", 8); 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);Nếu tên font không tìm thấy thì font mặc định được sử dụng.Size = 8 pixelSize = 1 inchtext13Font14FontDemoTime New Roman, 14Arial, 36Arial, Bold, Italic, 36Impact, 1 inch15PenXác định width, style, fill style Không cho kế thừa, nhưng tạo thể hiện đượcTrong namespace System.DrawingPen p1 = new Pen(Color.Green); Pen p2 = new Pen(Color.blue, 10); Sử dụng lớp Pens có 141 pen được định nghĩa trước.Pen p3 = Pens.Violet;16Pen17BrushDùng để tô vùng bên trong của hìnhLớp Brush là lớp Abstract nên không tạo thể hiệnSử dụng các lớp kế thừa sau để tạo brushSolidBrushLinearGradientBrushTextureBrushHatchBrushSử dụng lớp Brushes định nghĩa trước các brush.18BrushSolidHatchLinearGradientTexture19BurshDemoSolidHatchLinearGradientTexture20Line, Rectangle, EllipseDrawLine(Pen p, int x1, int y1, int x2, int y2)DrawRectangle(Pen p, int x, int y, int width, int height)DrawEllipse(Pen p, int x, int y, int width, int height)FillRectangle(Brush b, int x, int y, int width, int height)FillEllipse(Brush b, int x, int y, int width, int height)21Line, Rectangle, Ellipse22ImageLớp Image hiển thị các ảnh bitmapCác dạng ảnh: *.bmp, *.gif, *.jpg, *.ico Phương thức static FromFile tạo ảnh từ fileImage img = Image.FromFile(“hutech.bmp”);Image img2 = Image.FromFile(“hutech.gif”);Phương thức DrawImage xuất ảnh lên Graphicsg.DrawImage(img, 10, 10);G.DrawImage(img2, 10, 10, 100,100); // scale trong hình chữ nhật kích thước 100x10023Image24ImageEllipse được vẽ lên ảnh, rồi sau đó với vẽ ảnh lên Form25Minh họa 1Custom lại nền của FormOverride phương thức OnPaintBackground của Form26Form có dạng NonRectangleTạo form có hình dạng khác hình chữ nhậtSử dụng thuộc tính TransparencyKey của FormSử dụng các hiệu ứng màu được tô27Form có dạng NonRectangleBước 1:Tạo ứng dụng Windows ApplicationThiết kế Form có dạng như sauFormBorderStyle = none28Form có dạng NonRectangleBước 2:Thiết lập các thuộc tính cho Form như sau:TransparencyKey = Control: màu sẽ trong suốt khi vẽ trên FormFormBorderStyle = None: Form không có đường biênThiết lập màu nền cho 2 Label là TransparentPhần background của 2 label sẽ tiệp với nền bên dưới29Form có dạng NonRectangleBước 3: Tạo trình xử lý cho sự kiện Paint30Form có dạng NonRectangleDemoVùng của FormVùng ngoài Form31MultimediaTạo ứng dụng chứa Windows Media Player control cho phépPlay các file video và sound theo nhiều dạng formatMPEG (Motion Pictures Expert Group): videoAVI (Audio-video Interleave): videoWAV (Windows Wave-file Format): audioMIDI (Musical Instrument Digital Interface): audio32MultimediaBước 1: bổ sung Windows Media Player vào ToolBoxKích chuột phải vào ToolBox ->chọn Choose ItemsTrong Dialog Choose Toolbox Items chọn COM ComponentsChọn Windows Media PlayerKhi đó control WMP sẽ hiện ở dưới cùng của ToolBox33MultimediaBước 2: kéo Windows Media Player thả vào FormThiết lập Dock = FillDragDock = FillĐổi tên control thành WMPlayer34MultimediaBước 3: Tạo MenuStrip để bổ sung chức năng Open File media35MultimediaBước 4: viết trình xử lý cho Menuitem Open36MultimediaDemo37Q&A38

Các file đính kèm theo tài liệu này:

  • ppttailieu.ppt