Đề tài tìm hiểu cấu trúc GDI trong Window - Trần Lê Tài
1. GDI được hiểu như thế nào ?
Nếu bạn muốn viết 1 cách hiệu quả và khi tối ưu hóa những ứng dụng đồ họa, điều quan trọng là bạn phải hiểu lớp Thư viện GDI +. Trong mục này chúng ta sẽ thảo luận về: định nghĩa GDI+, và làm thế nào sử dụng nó trong việc quản lý những ứng dụng.
2. Định nghĩa GDI+:
GDI+ là một thư viện cung cấp 1 giao diện cho phép người lập trình viết trên Window và giao diện ứng dụng trên Web cái mà nó sẽ tác động với những thiết bị đồ họa như là: Máy in, Màn hình, và những loại tệp tin khác
Tất cả các ứng dụng hệ giao diện đồ hoạ (GUI) tương tác với một thiết bị phần cứng (một màn hình, máy in hay scanner), có thể đại diện cho dữ liệu trong một mẫu (dạng) mà con người có thể đọc được. Tuy nhiên, không có thông tin trực tiếp giữa một chương trình và một thiết bị,Vì thế bạn phải viết mã giao diện người sử dụng và mọi thiết bị với chương trình nào của bạn đang tương tác!
Để tránh việc tương tác 1 lượng lớn này, một thành phần thứ ba ngồi giữa chương trình và thiết bị. Nó chuyển đổi và đi qua dữ liệu được gửi bởi chương trình tới thiết bị và ngược lại. Thành phần này là Thư viện GDI+. Ví dụ ta đánh máy 1 dòng chữ " Xin chào thế giới " đơn giản trên bàn điều khiển, hay việc vẽ một đường thẳng hay một hình chữ nhật, và in ấn một cái mẫu đó là những ví dụ cái mà một chương trình gửi dữ liệu cho GDI+, từ đó nó sẽ chuyển đổi cho việc sử dụng bởi một thiết bị phần cứng.
Hình 1.1 minh họa quá trình này.
Bây giờ chúng ta sẽ nhìn thấy GDI+ làm việc như thế nào. Giả thiết chương trình của các bạn vẽ một hàng. Một hàng hiển thị như là một chuỗi của những điểm (pixel) vẽ tuần tự từ vị trí bắt đầu đến vị trí cuối. Để vẽ một hàng trên một màn hình, màn hình cần biết điểm pixel nằm ở đâu . Thay vì việc nói với màn hình để vẽ những điểm, chương trình của các bạn gọi là phương pháp DrawLine của GDI+, và GDI + vẽ một đường từ điểm A tới điểm B. GDI+ đọc vị trí điểm A và vị trí điểm B, và sự chuyển đổi một dòng các pixel và báo với màn hình hiển thị đúng vị trí các dòng pixel trên.
GDI+ cho phép bạn có thể viết trên những chương trình ứng dụng và sự đáp ứng thiết kế đồ họa cao, dễ sử dụng, và hổ trợ nhiều ngôn ngữ khác nhau.
h red eye correction should be applied. Trỏ đến một mảng của cấu trúc RECT, ở mỗi phòng trong số đó xác định một khu vực của Bitmap mà chỉnh mắt đỏ nên được áp dụng. Structure Information Thông tin cơ cấu Header Declared in Gdipluseffects.h , include gdiplus.h Tuyên bố trong Gdipluseffects.h, bao gồm gdiplus.h Import library Nhập thư viện gdiplus.lib gdiplus.lib Minimum availability Tối thiểu có sẵn GDI+ 1.1 GDI + 1,1 Minimum operating systems Tối thiểu cho hệ điều hành Windows 98/Me, Windows XP, Windows 2000, Windows NT 4.0 SP6 Windows 98/Me, Windows XP, Windows 2000, Windows NT 4.0 SP6 Cơ cấu tổ chức SharpenParams The SharpenParams structure contains members that specify the nature of a sharpening adjustment to a bitmap. SharpenParams các cấu trúc chứa các thành viên xác định rằng bản chất của một sharpening để điều chỉnh một Bitmap. You can adjust the sharpness of a bitmap by following these steps. Bạn có thể điều chỉnh những nét của một Bitmap bằng cách làm theo các bước sau. Create and initialize a SharpenParams structure. Tạo và khởi tạo một cơ cấu SharpenParams. Pass the address of the SharpenParams structure to the SetParameters method of a Sharpen object. Qua địa chỉ của cơ cấu SharpenParams đến SetParameters phương pháp của một sắc nét đối tượng. Pass the address of the Sharpen object to the Graphics::DrawImage method or to the Bitmap::ApplyEffect method. Qua địa chỉ của đối tượng sắc nét đến đồ họa:: DrawImage phương pháp hoặc cho Bitmap:: ApplyEffect phương pháp. Syntax Cú pháp typedef struct { typedef struct ( REAL radius; REAL kính; REAL amount; REAL số tiền; } SharpenParams; SharpenParams); Members Thành viên radius bán kính Real number that specifies the sharpening radius (the radius of the convolution kernel) in pixels. Thực tế rằng số xác định bán kính sharpening (bán kính hình convolution hạt nhân) trong pixel. The radius must be in the range 0 through 255. Ban phải được trong khoảng 0 thông qua 255. As the radius increases, more surrounding pixels are involved in calculating the new value of a given pixel. Như là tăng bán kính, chi tiết xung quanh pixel đang tham gia vào việc tính các giá trị mới của một pixel. amount số lượng Real number in the range 0 through 100 that specifies the amount of sharpening to be applied. Thực tế trong phạm vi số 0 qua 100 xác định rằng số tiền của sharpening để được áp dụng. A value of 0 specifies no sharpening. Một giá trị của 0 xác định không có sharpening. As the value of amount increases, the sharpness increases. Như giá trị của số tiền tăng lên, những nét tăng lên. Structure Information Thông tin cơ cấu Header Declared in Gdipluseffects.h , include gdiplus.h Tuyên bố trong Gdipluseffects.h, bao gồm gdiplus.h Import library Nhập thư viện gdiplus.lib gdiplus.lib Minimum availability Tối thiểu có sẵn GDI+ 1.1 GDI + 1,1 Minimum operating systems Tối thiểu cho hệ điều hành Windows 98, Windows XP, Windows 2000, Windows NT 4.0 SP6 Windows 98, Windows XP, Windows 2000, Windows NT 4.0 SP6 Cơ cấu tổ chức TintParams A TintParams structure contains members that specify the nature of a tint adjustment to a bitmap. Một TintParams cấu trúc chứa các thành viên xác định rằng bản chất của một Tint để điều chỉnh một Bitmap. You can adjust the tint of a bitmap by following these steps. Bạn có thể điều chỉnh Tint của một Bitmap bằng cách làm theo các bước sau. Create and initialize a TintParams structure. Tạo và khởi tạo một cơ cấu TintParams. Pass the address of the TintParams structure to the SetParameters method of a Tint object. Qua địa chỉ của cơ cấu TintParams đến SetParameters phương pháp của một Tint đối tượng. Pass the address of the Tint object to the Graphics::DrawImage method or to the Bitmap::ApplyEffect method. Qua địa chỉ của Tint để các đối tượng đồ họa:: DrawImage phương pháp hoặc cho Bitmap:: ApplyEffect phương pháp. Syntax Cú pháp typedef struct { typedef struct ( INT hue; Công hue; INT amount; Công số tiền; } TintParams; TintParams); Members Thành viên hue hue Integer in the range -180 through 180 that specifies the hue to be strengthened or weakened. Integer trong phạm vi -180 rằng thông qua 180 để xác định màu sắc được tăng cường hay suy yếu. A value of 0 specifies blue. A 0 xác định giá trị của màu xanh. A positive value specifies a clockwise angle on the color wheel. Một xác định giá trị tích cực đồng hồ một góc độ màu sắc trên bánh xe. For example, positive 60 specifies cyan and positive 120 specifies green. Ví dụ, tích cực 60 Cyan xác định và tích cực 120 xác định màu xanh lá cây. A negative value specifies a counter-clockwise angle on the color wheel. Một phủ định xác định giá trị đồng hồ góc độ màu sắc trên bánh xe. For example, negative 60 specifies magenta and negative 120 specifies red. Ví dụ, phủ định 60 Magenta xác định và phủ định 120 xác định màu đỏ. amount số lượng Integer in the range -100 through 100 that specifies how much the hue (given by the hue parameter) is strengthened or weakened. Integer trong phạm vi -100 thông qua 100 xác định rằng bao nhiêu những màu sắc (do các tham số màu sắc) được tăng cường hay suy yếu. A value of 0 specifies no change. Một giá trị của 0 xác định không có thay đổi. Positive values specify that the hue is strengthened and negative values specify that the hue is weakened. Xác định giá trị tích cực rằng các màu sắc được củng cố và xác định giá trị phủ định rằng các màu sắc là suy yếu. Structure Information Thông tin cơ cấu Header Declared in Gdipluseffects.h , include gdiplus.h Tuyên bố trong Gdipluseffects.h, bao gồm gdiplus.h Import library Nhập thư viện gdiplus.lib gdiplus.lib Minimum availability Tối thiểu có sẵn GDI+ 1.1 GDI + 1,1 Minimum operating systems Tối thiểu cho hệ điều hành Windows 98, Windows XP, Windows 2000, Windows NT 4.0 SP6 Windows 98, Windows XP, Windows 2000, Windows NT 4.0 SP6 Cơ cấu tổ chức WmfPlaceableFileHeader The WmfPlaceableFileHeader structure defines the fields of a placeable metafile header. WmfPlaceableFileHeader định nghĩa trong cơ cấu các lĩnh vực placeable metafile một tiêu đề. Placeable metafiles were created as a way of specifying how a metafile is mapped and scaled on a display device. Placeable metafiles được tạo ra như là một cách để xác định như thế nào là một metafile ánh xạ và nhỏ trên một màn hình điện thoại. Syntax Cú pháp typedef struct { typedef struct ( UINT32 Key; UINT32 khóa; INT16 Hmf; INT16 Hmf; PWMFRect16 BoundingBox; PWMFRect16 BoundingBox; INT16 Inch; INT16 Inch; UINT32 Reserved; UINT32 Reserved; INT16 Checksum; INT16 toán; } WmfPlaceableFileHeader; WmfPlaceableFileHeader); Members Thành viên Key Chìa khoá Identification value that indicates the presence of a placeable metafile header. Xác định giá trị cho biết rằng sự hiện diện của một placeable metafile tiêu đề. This value is always 0x9AC6CDD7. Giá trị này luôn luôn là 0x9AC6CDD7. Hmf Hmf Handle to the metafile in memory. Để xử lý các metafile trong bộ nhớ. When written to disk, this field is not used and will always contains the value 0. Khi ghi vào đĩa, lĩnh vực này là không được sử dụng và sẽ luôn luôn có chứa các giá trị 0. BoundingBox BoundingBox Destination rectangle, measured in twips, for displaying the metafile. Rectangle các điểm đến, trong đo twips, cho hiển thị các metafile. Inch Inch Number of twips per inch used to represent the image. Số twips cho mỗi inch được sử dụng để đại diện cho hình ảnh. Normally, there are 1440 twips per inch; however, this number can be changed to scale the image. Thông thường, có 1.440 twips cho mỗi inch; Tuy nhiên, con số này có thể được thay đổi để quy mô hình ảnh. A value of 720 specifies that the image is twice its normal size. Một giá trị của 720 xác định rằng các hình ảnh là hai lần kích thước bình thường của nó. A value of 360 specifies that the image is four times its normal size. Một giá trị của 360 xác định rằng các hình ảnh là bốn lần kích thước bình thường của nó. A value of 2880 specifies that the image is half its normal size. Một giá trị của 2880 xác định rằng các hình ảnh này bằng một nửa kích thước bình thường của nó. Reserved Reserved Not used and is always set to 0. Không được sử dụng và luôn luôn được đặt để 0. Checksum Checksum Checksum for the previous 10 WORD s in the header. Checksum cho các trang trước 10 CHỮ s trong tiêu đê. This value can be used to determine whether the metafile has become corrupted. Giá trị này có thể được sử dụng để xác định xem các metafile đã trở thành hỏng. Remarks Remarks Although placeable metafiles are quite common, they are not directly supported by the Microsoft Windows API. Mặc dù placeable metafiles khá phổ biến, họ không trực tiếp hỗ trợ bởi Microsoft Windows API. To display a placeable metafile using the Windows API, you must first strip the placeable metafile header from the file. Để hiển thị một placeable metafile của Windows bằng cách sử dụng API, trước tiên bạn cần phải gỡ các placeable metafile tiêu đề từ các tập tin. This is typically performed by copying the metafile to a temporary file starting at file offset 22 (0x16). Điều này thường được thực hiện bằng cách sao chép các metafile vào một tập tin tạm thời bù đắp tập tin bắt đầu từ 22 (0x16). This is because each placeable metafile begins with a 22-byte header that is followed by a standard metafile. Được này, vì mỗi placeable metafile bắt đầu với 22-byte tiêu đề đó là, theo sau là một tiêu chuẩn metafile. Structure Information Thông tin cơ cấu Header Declared in Gdiplusmetaheader.h , include gdiplus.h Tuyên bố trong Gdiplusmetaheader.h, bao gồm gdiplus.h Import library Nhập thư viện gdiplus.lib gdiplus.lib Minimum availability Tối thiểu có sẵn GDI+ 1.0 GDI + 1,0 Minimum operating systems Tối thiểu cho hệ điều hành Windows 98/Me, Windows XP, Windows 2000, Windows NT 4.0 SP6 Windows 98/Me, Windows XP, Windows 2000, Windows NT 4.0 SP6
File đính kèm:
- ĐỀ TÀI GDI.doc