Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 40 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
40
Dung lượng
879,1 KB
Nội dung
1
GDI +
ThS. NguyễnHà Giang
Khoa CNTT
Nguyen HaGiang -2008
2
N i Dung
n 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
Nguyen HaGiang -2008
3
GDI+
n GDI: Graphical Device Interface
n GDI+ là API (Application programming interface)
cung cấp các lớp cho phép
q 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…
n Thư viện FCL chứa các lớp thao tác vẽ trong
namespace
q System.
Drawing
n 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+
Nguyen HaGiang -2008
4
System.Drawing
structure
class
System.Drawing
Font
FontFamily
Graphics
Icon
Pen
Region
SolidBrush
TextureBrush
Image
Brush
HatchBrush
LinearGradientBrush
PathGradientBrush
SolidBrush
TextureBrush
Color
Point
Rectangle
Size
Nguyen HaGiang -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);
}
}
Nguyen HaGiang -2008
6
Graphics
n Lớp Graphics thể hiện
q “
Abstract” drawing surface
q Tập hợp những “
tool” cho phép thao tác trên
surface đó
n Để lấy đối tượng Graphics
q Sử dụng thuộc tính Graphics được truyền cho
OnPaint()
q Sử dụng phương thức CreateGraphics() của
control
q Lấy từ đối tượng dẫn xuất từ Bitmap
n Gọi hàm Invalidate() thay vì OnPaint()
Nguyen HaGiang -2008
7
L y i t ng Graphics
protected override void OnPaint(PaintEventArgs paintevent)
protected override void OnPaint(PaintEventArgs paintevent)
{
Graphics graf=paintevent.Graphics;
}
private void mainForm_Paint(object sender, PaintEventArgs
private void mainForm_Paint(object sender, PaintEventArgs
paintevent)
{
Graphics graf=paintevent.Graphics;
}
Từ tham số PaintEventAtgs
Nguyen HaGiang -2008
8
L y i t ng Graphics
private void PaintMe(Control testcontrol)
private void PaintMe(Control testcontrol)
{
Graphics graf=testcontrol.CreateGraphics();
. . .
}
protected override void OnPaint(PaintEventArgs
protected override void OnPaint(PaintEventArgs
paintevent)
{
Bitmap bmpimage=new Bitmap("hutech.jpg");
Graphics graf = Graphics.FromImage (bmpimage);
}
Lấy từ control
Lấy từ ảnh
Nguyen HaGiang -2008
9
DrawString() method
n Hiển thị text trong Graphics cụ thể
q Có nhiều phiên bản
q
DrawString( String text, // Text thể hiện
Font f, // Font
Brush b, // Color & texture
float x, float y);// vị trí góc trái trên
q Tham số Font và Brush không có mặc định nên
phải truyền vào.
Nguyen HaGiang -2008
10
T a h th ng
(0,0)
(w,0)
(0,h) (w,h)
Gốc tọa độ
(0,0)
(w
1
,0)
(0,h
1
) (w
1
,h
1
)
Form,
Panel,
GroupBox
Control
[...]... Pens.Violet; NguyenHaGiang- 2008 16 Pen NguyenHaGiang- 2008 17 Brush n n n Dùng đ tô vùng bên trong c a hình L p Brush là l p abstract nên không t o th hi n S d ng các l p k th a sau đ t o brush q q q q n SolidBrush LinearGradientBrush TextureBrush HatchBrush S d ng l p Brushes đ nh nghĩa trư c các brush NguyenHaGiang- 2008 18 Brush Solid Hatch LinearGradient Texture NguyenHaGiang- 2008 19 Bursh... Giang- 2008 23 Image NguyenHaGiang- 2008 24 Image Ellipse được vẽ lên ảnh, rồi sau đó với vẽ ảnh lên Form NguyenHaGiang- 2008 25 Minh h a 1 n Custom l i n n c a Form Override phương thức OnPaintBackground của Form NguyenHaGiang- 2008 26 Form có d ng NonRectangle n T o form có hình d ng khác hình ch q q nh t S d ng thu c tính TransparencyKey c a Form S d ng các hi u ng màu đư c tô NguyenHa Giang. .. a 2 label s ti p v i n n bên dư i NguyenHaGiang- 2008 29 Form có d ng NonRectangle n Bư c 3: T o trình x NguyenHaGiang- 2008 lý cho s ki n Paint 30 Form có d ng NonRectangle n Demo Vùng của Form Vùng ngoài Form NguyenHaGiang- 2008 31 Form có d ng NonRectangle n B sung di chuy n form q Thêm namespace: n q System.Runtime.InteropServices; Load các hàm t DLL vào project public const int WM_NCLBUTTONDOWN... (Audio-video Interleave): video WAV (Windows Wave-file Format): audio MIDI (Musical Instrument Digital Interface): audio NguyenHaGiang- 2008 34 Multimedia n Bư c 1: b sung Windows Media Player vào ToolBox q q Kích chu t ph i vào ToolBox → ch n Choose Items… Trong Dialog Choose Toolbox Items ch n COM Components n q Ch n Windows Media Player Khi đó control WMP s hi n ToolBox NguyenHaGiang- 2008... = new Font("Arial", 1, GraphicsUnit.Inch); Size = 1 inch q N u tên font không tìm th y thì font m c đ nh đư c s d ng NguyenHaGiang- 2008 13 Font NguyenHaGiang- 2008 14 Font n Demo Time New Roman, 14 Arial, 36 Arial, Bold, Italic, 36 Impact, 1 inch NguyenHaGiang- 2008 15 Pen n n n 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 q n Pen... Windows Media Player Khi đó control WMP s hi n ToolBox NguyenHaGiang- 2008 dư i cùng c a 35 Multimedia n Bư c 2: kéo Windows Media Player th vào Form q Thi t l p Dock = Fill Dock = Fill Đổi tên control thành WMPlayer NguyenHaGiang- 2008 36 ... LinearGradient Texture NguyenHaGiang- 2008 20 Line, Rectangle, Ellipse n DrawLine q n DrawRectangle q n (Pen p, int x, int y, int width, int height) FillRectangle q n (Pen p, int x, int y, int width, int height) DrawEllipse q n (Pen p, int x1, int y1, int x2, int y2) (Brush b, int x, int y, int width, int height) FillEllipse q (Brush b, int x, int y, int width, int height) NguyenHaGiang- 2008 21 Line, Rectangle,... [DllImportAttribute("user32.dll")] public static extern bool ReleaseCapture(); NguyenHaGiang- 2008 32 Form có d ng NonRectangle n B sung code vào trình x MouseDown lý s ki n private void Form1_MouseDown(object sender, MouseEventArgs e) { ReleaseCapture(); SendMessage(Handle, WM_NCLBUTTONDOWN, HT_CAPTION, 0); } NguyenHaGiang- 2008 33 Multimedia n T o ng d ng ch a Windows Media Player control cho phép q... q g.PageScale = 1f (default) NguyenHaGiang- 2008 11 Color n S q n Color.Blue, Color.Red, Color.White… S q n d ng màu đư c đ nh nghĩa trong Color d ng màu đ nh nghĩa cho h th ng SystemColors.Control, SystemColors.ControlText… S q q q q d ng màu ARGB 32 bit đ th hi n màu A (alpha) th hi n m c đ trong su t (255 opaque) RGB là Red, Green và Blue T o màu s d ng hàm FromArgb() n n Color red = Color.FromArgb(255,0,0);... Giang- 2008 22 Image n L p Image hi n th các nh bitmap q n Phương th c static FromFile t o nh t file q q n Các d ng nh: *.bmp, *.gif, *.jpg, *.ico… Image img = Image.FromFile(“hutech.bmp”); Image img2 = Image.FromFile(“hutech.gif”); Phương th c DrawImage xu t nh lên Graphics q q g.DrawImage(img, 10, 10); G.DrawImage(img2, 10, 10, 100,100); // scale trong hình ch nh t kích thư c 100x100 NguyenHaGiang . 1
GDI +
ThS. Nguyễn Hà Giang
Khoa CNTT
Nguyen Ha Giang -2 008
2
N i Dung
n GDI+
n Chương trình vẽ cơ bản trên Form
n Lớp Graphics và hàm OnPaint()
n. inch
Nguyen Ha Giang -2 008
14
Font
Nguyen Ha Giang -2 008
15
Font
n Demo
Time New Roman, 14
Arial, 36
Arial, Bold, Italic, 36
Impact, 1 inch
Nguyen Ha Giang -2 008
16
Pen
n