Bài giảng GDI+ - Phạm Anh Phương

Pen

Dùng Pen có sẵn thông qua Pens

Pens.AliceBlue

Pens.Aqua

Pens.Black

Pens.Brown

Dùng Pen do tự tạo thông qua lớp Pen

new Pen(Brush)

new Pen(Color)

new Pen(Color, Width)

Brush

Dùng Brush tự có

Brushes.Lavendar

Brushes.Ivory

Brushes.LightBlue

TextureBrush: dùng ảnh image để vẽ

SolidBrush:Tạo cọ với màu đơn sắc

 

ppt40 trang | Chia sẻ: trungkhoi17 | Lượt xem: 313 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Bài giảng GDI+ - Phạm Anh Phương, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
GDI+GV: Phạm Anh PhươngEmail: paphuong@fit.hcmuns.edu.vnChủ đềGDI & Device ContextGDI+Các namespaceKĩ thuật di chuyển ảnhKĩ thuật chống flickerGDITập hàm API dùng để thực hiện việc mọi thao tác vẽ trong hệ điều hành WinXPDevice Context là nơi mà mọi thao tác vẽ thực hiện trên đó. Bao gồm có:PaintBrushImageColor..GDI+Thực hiện vẽ trên môi trường .NETCung cấp tập namespace, lớp hướng đối tượng lớn cho việc thực hiện vẽDevice Context được thay thế bằng đối tượng GraphicMỗi control đều có đối tượng Graphic để vẽ nó, bao gồm Form, Button, TextBox, . GDI+Các namespace chínhTên Mô tảSystem.DrawingĐịnh nghĩa những đối tượng vẽ cơ bản (Fonts, Pens, Brushes,..) và đối tượng GraphicSystem.Drawing.Drawing2DCung cấp những đối tượng vẽ vector 2 chiều như gradient brushes, gradient pens,..System.Drawing.ImageThao tác với hình ảnh như thực hiện vẽ, lấy thông tin kích thước ảnh, System.Drawing.PrintingThực hiện in; cung cấp những đối tượng giao tác với printerSystem.Drawing.TextThực hiện vẽ với các font.Đối tượng GraphicĐây là đối tượng quan trọng của GDI+Mọi thao tác vẽ đều thực hiện trên đối tượng Graphic nàyBất kì lớp control nào cũng đều có thuộc tính Graphic dùng để vẽ chính nóCó 2 cách truy xuấtSự kiện PaintHàm CreateGraphic(): Ảnh vẽ sẽ mất đi khi Form được Reload Ví dụĐối tượng GraphicDanh sách các hàm vẽTên Mô tảClipThiết lập vùng vẽClear(Color)Tô toàn bộ vùng vẽ với màu ColorDrawCurveVẽ đường uốn con nối liền tập điểmDrawEclipseVẽ hình EclipseDrawIconVẽ biểu tượng IconDrawRectangleVẽ hình chữ nhậtDrawArcVẽ hình tròn theo độVí dụVí dụVẽ hình EclipseVí dụVẽ IconVí dụVẽ hình tròn (DrawArc)Đối tượng GraphicDanh sách các hàm tô màuTên Mô tảFillRectangleTô màu hình chữ nhậtFillEclipseTô màu hình eclipseFillRegionTô màu một vùng vẽFillPolygonTô màu hình tạo bởi tập điểmFromHDCLấy device context của graphicReleaseHDCGiải phóng device contextSystem.DrawingCung cấp những chức năng, kiểu đối tượng tham gia vẽ cơ bảnĐể sử dụng các đối tượng vẽ nâng cao, ta sẽ dùng System.Drawing.Drawing2D, System.Drawing.Imaging và System.Drawing.TextGraphic ObjectPen, PensBrushesFontFamilyTextureBrushBitmapSolidBrushPenDùng Pen có sẵn thông qua PensPens.AliceBluePens.AquaPens.BlackPens.BrownDùng Pen do tự tạo thông qua lớp Pennew Pen(Brush)new Pen(Color)new Pen(Color, Width)BrushDùng Brush tự cóBrushes.LavendarBrushes.IvoryBrushes.LightBlueTextureBrush: dùng ảnh image để vẽSolidBrush:Tạo cọ với màu đơn sắcVí dụTextureBrushVí dụSolidBrushVí dụDrawStringSystem.Drawing.Drawing2DCung cấp các lớp cho phép vẽ nâng cao đối với ảnh vẽ Vecto hoặc 2 chiềuGraphic ObjectGraphicsPathLinearGradientBrushHatchBrushPathGradientBrushBlendRegionDataVí dụGraphicsPathVí dụLinearGradientBrushBlendBlend & Position:Blend có giá trị từ 0.0f đến 1.0f. Tại điểm Position, điểm màu sẽ được tạo bởi % màu bắt đầu và % màu kết thúcVí dụVí dụVí dụMulti-Color BlendVí dụMulti-Color BlendsVí dụHatchBrushKĩ thuật di chuyển ảnhSử dụng Timer & sự kiện PaintTimerNamespace: System.Timers.TimeĐịnh khoảng thời gian 1 hàm sẽ được hệ điều hành gọi lại để thực thiSự kiện: Tick: Khai báo hàm xử lý sự kiện Tick sau 1 khoảng IntervalThuộc tính: Interval: Cho biết khoảng thời gian mà sự kiện Tick được gọi (milisecond)Ví dụ:Invalidate Hành động Invalidate dùng để thực hiện vẽ lại Form hoặc 1 vùng nào đó trên Form.Sử dụng hàm : Invalidate.Invalidate (Rectangle, bInvalidateChildren).Invalidate (Region, bInvalidateChildren)Kĩ thuật chống FlickerKhi sự kiện Paint được gọi, mọi đối tượng sẽ được vẽ trực tiếp trên Device Context (đối tượng Graphics). Điều này sẽ gây hiện tượng flicker trong 3 trường hợp sau:Resize màn hình hoặc user controlAnimation (Kĩ thuật Timer + Thay đổi tọa độ đối tượng vẽ)Drag & Drop 1 đối tượngKĩ thuật chống Flicker Cách 1: Trong sự kiện Load của Form ta chèn đoạn code sauKĩ thuật chống FlickerCách 2:1/ Override lại sự kiện vẽ ảnh nền mặc định của Window để không thực hiện vẽ ảnh nền vì nó sẽ được vẽ trên MemDC2/ Vẽ ảnh lên 1 Bitmap trước; sau đó mới vẽ vào DC Thay vì vẽ trực tiếp trên Device Context, ta sẽ vẽ vào 1 vùng nhớ đệm (double buffer). Khi mọi thao tác vẽ trên vùng đệm xong, ta mới vẽ vào Device ContextVí dụVí dụVí dụHẾT

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

  • pptbai_giang_gdi_pham_anh_phuong.ppt