} Mục tiêu◦ Học viên phải biết, hiểu và lập trình được với các đối tượng đồ họa của C#.NET... } GDI +: được phát triển từ GDI Graphics Device Inteface, chỉ có trong .Net Framework dụng,
Trang 1Ch ươ ng 9
Trang 2} Mục tiêu
◦ Học viên phải biết, hiểu và lập trình được với các
đối tượng đồ họa của C#.NET
Trang 3} Giới thiệu về GDI+
Trang 4} GDI +: được phát triển từ GDI (Graphics Device
Inteface), chỉ có trong Net Framework
dụng, cho phép thao tác với các đối tượng đồ họa trên
các thiết bị xuất như màn hình máy in hoặc các tập tin
Device context (DC)
xử lý đồ họa thành các câu lệnh có thể xuất được trên
thiết bị
System.Drawing.Graphics
thực hiện thông qua đối tượng Graphics
Trang 5} GDI + trong lập trình đồ họa:
◦ Cung cấp các lớp đặc trưng cho đồ họa 2D: Point
(F), Size (F), Rectangle(F)
◦ Cung cấp các cấu trúc về màu sắc (Color), hỗ trợ
các chuẩn sRGB, ICM2, sRGB64
◦ Cung cấp các đối tượng tô màu nâng cao như
Texture, gradiant brush, vẽ đường (line styles, line
cap options,…)
◦ Cung cấp các lớp đối tượng hiển thị và xử lý hình
ảnh, hỗ trợ hầu hết các định dạng như jpg, jpeg,
Trang 6} Giới thiệu về GDI+
} Ch ứ c n ng c ủ a GDI+
Trang 7} Chia thành 5 nhóm: đồ họa vector 2D, hình
ảnh, kiểu chữ, in ấn, thiết kế giao diện
phép vẽ điểm, đường, các đối tượng hình học, chia thành 2 nhóm:
với hình ảnh, gồm các lớp Image, Bitmap, Metafile
thiết lập font chữ,…
Trang 8} Chia thành 5 nhóm (tt):
◦ In (Printing): cung cấp các lớp cho phép truy cập
thiết bị máy in và các thao tác in, thuộc namespace
Sytem.Drawing.Printing
◦ Thiết kế giao diện người dùng: cung cấp các lớp
cho phép thiết kế giao diện người dùng với chức
năng mở rộng, thuộc namespace
System.Drawing.Design
Trang 10} Bao gồm: phạm vi vẽ, công cụ vẽ, tiến trình vẽ
Điểm ảnh: pixel, là đơn vị nhỏ nhất tham gia vào
quá trình hiển thị đối tượng, gồm 3 thành phần đỏ, xanh lá, xanh dương (RGB)
Trang 11} Hệ thống tọa độ trong GDI+
Trang 12} Giới thiệu về GDI+
} M ộ t s ố ố i t ợ ng GDI
Trang 13} Color
Trang 14} Các thuộc tính
◦ A: trả về giá trị thuộc tính anpha trong cấu trúc màu
◦ R, G, B: giá trị Red, Green, Blue (0-255)
◦ IsEmpty: kiểm tra cấu trúc Color rỗng?
◦ IsKnownColor: cho biết một màu được xác định
trước xác định trong kiểu liệt kê KnownColor
◦ IsNamedColor: cho biết một màu được xác định
trước có tên xác định trong kiểu liệt kê
Trang 15} Một số phương thức lớp Color
◦ FromArgb: tạo một đối tượng màu từ các giá trị
A,R,G,B
◦ FromKnownColor: tạo một đối tượng màu từ một
màu định nghĩa trong KnowColor
◦ FromName: tạo đối tượng màu từ tên màu
Trang 16ví dụ: Point pt2 = new Point( new Size(20, 20) );
◦ public Point(int, int);
ví dụ: Point pt3 = new Point(30, 30);
Trang 18bằng 0: True)
Trang 19} Các phương thức
◦ Contains: kiểm tra một điểm có nằm trong HCN?
◦ Inflate: thay đổi kích thước HCN theo các chiều
◦ Offset: thay đổi vị trí HCN
◦ Ceiling: chuyển RectangleF Rectangle với các giá
trị tọa độ được làm tròn lên
◦ Round: chuyển RectangleF Rectangle với các giá
trị tọa độ được làm tròn
◦ Truncate: chuyển RectangleF Rectangle với các
giá trị tọa độ được làm tròn xuống
Trang 22} Xác định kích thước một vùng hình chữ nhật, với hai thuộc tính Width, Height
◦ PointF pt1 = new PointF(30.6f, 30.8f);
◦ PointF pt2 = new PointF(50.3f, 60.7f);
◦ PointF pt3 = new PointF(110.3f, 80.5f);
◦ SizeF sz1 = new SizeF(pt1);
◦ SizeF sz2 = new SizeF(pt2);
◦ SizeF sz3 = new SizeF(pt3);
◦ Size sz4 = Size.Ceiling(sz1);
◦ Size sz5 = Size.Round(sz2);
◦ Size sz6 = Size.Truncate(sz3);
Trang 23} Giới thiệu về GDI+
} L ớ p Graphics
Trang 24} Là thành phần chính của GDI+, cung cấp các tài
nguyên và phương pháp thao tác với các đối
tượng đồ họa
} Một số thuộc tính lớp Graphics
theo inch
Trang 25} Một số phương thức Draw của lớp Graphics
Trang 31} Ellipse là một hình nội tiếp trong một vùng
Trang 33} Một số phương thức Fill của lớp Graphics
Trang 36} Đ ối tượng tô màu
◦ System.Drawing: Brush, Brushes
◦ System.Drawing.Drawing2D: HatchBrush,
SolidBrush, TextureBrush, GradientBrush
◦ Là một lớp không được kế thừa
◦ Cung cấp hơn 140 thuộc tính tô màu chuẩn
(standard colors)
Trang 38} Tạo một Solid Brush: sử dụng constructor
◦ SolidBrush redBrush = new SolidBrush(Color.Red);
SolidBrush greenBrush = new
SolidBrush(Color.Green);
◦ SolidBrush blueBrush = new SolidBrush(Color.Blue);
Trang 39} Constructor:
◦ public HatchBrush(HatchStyle, Color);
◦ public HatchBrush(HatchStyle, Color, Color);
Trang 42} Là loại cọ tô có nền là ảnh bitmap
Trang 43} Là cọ tô pha trộn giữa các màu
◦ Linear Gradient Brushes: 2 màu
◦ Path Gradient Brushes: tập các màu
Trang 44} Constructor:
Trang 45} Cọ tô được tạo từ một đối tượng GraphicsPath
Trang 47} Class Pens: bao gồm các thuộc tính static,
chứa hầu hết các màu chuẩn (standar color)
Trang 61} Windows hỗ trợ hai loại phông chữ: GDI fonts
và device fonts
ra như màn hình, máy in,…
hệ thống, thường chứa trong thư mục
Windows\Fonts
◦ Ví dụ, Arial, Arial Black, Arial Bold, Arial Italic, Italic
Trang 62} Constructor:
Trang 67} Brushes
} Pens
} Font
} Làm vi ệ c v ớ i v n b ả n
Trang 68} Sử dụng phương thức DrawString
Trang 70} Sử dụng thuộc tính FormatFlags của đối
tượng StringFormat để canh chỉnh, chuyển
hướng văn bản xuất.