Tải bản đầy đủ (.pdf) (31 trang)

Tìm hiểu cấu trúc GDI trong window

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (378.37 KB, 31 trang )

Trường ĐHSP Thành phố Hồ Chí Minh

Nhóm thực hiện:
1. Trần Lê Tài – Nhóm trưởng (ĐT: 0915754839)
2. Trần Thị Ánh Nguyệt
3. Nguyễn Hoàng Phi
4. Nguyễn Ngọc Mỹ
5. Bùi Hoàng Nhật
6. Nguyễn Văn Lam
7. Lê Tuấn Anh

ĐỀ TÀI TÌM HIỂU CẤU TRÚC GDI TRONG
WINDOW
GVHD: THẦY ÂU BỬU LONG

Biên Hòa, Tháng 12 năm 2008


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.

3.

GDI là gì ?
GDI là tập hợp 1 lớp thư viện viết bằng ngôn ngữ C++ được gọi là Gdiplus.dll. Gdiplus.dll là một
thành phần của hệ điều hành Winddow XP và Window Server 2003.

Mẹo nhỏ:
Bạn có thể sử dụng GDI+ trên những hệ điều hành windows khác với XP. Bạn chỉ
cần cài đặt GDI+ trên máy tính, mà có nghĩa là Gdiplus.dll đã được sao chép tới thư mục
hệ thống. Cài đặt .NET SDK, Visual Studio .NET, or .NET thì sao chép phân phối lại



Gdiplus.dll một cách tự động.
Có điều gì mới ở GDI+ những lập trình viên GDI?
GDI+ Cung cấp những sự cải tiến quan trọng qua người đi trước của nó, GDI. Trong mục này chúng tôi
sẽ cầm lấy một cái nhìn nhanh tại những sự cải tiến này.
GDI+ Cung cấp một số đặc tính đẹp cho đồ họa vectơ 2 chiều. Một trong số quần chúng đẹp những đặc
tính là sự hỗ trợ những tọa độ dấu chấm động. Chẳng hạn, PointF, SizeF, và những lớp RectangleF đại
diện cho một dấu chấm động, kích thước, và hình chữ nhật tương ứng. Những đối tượng khác mà sử
dụng Điểm, Kích thước, và những đối tượng Hình chữ nhật cũng có những phương pháp quá tải mà có thể
sử dụng PointF.
Thành phần alpha, mà đại diện cho tính mờ (của) một màu, là một sự bổ sung cho cấu trúc màu mới.
Pha trộn Alpha, chống đặt biệt danh và màu hòa hợp là những sự thêm mới khác tới thư viện

• Mục đích GDI
Giao diện Microsoftđ Windowsđ thiết bị đồ họa (GDI) cho phép (cho) những ứng dụng sử dụng đồ họa
và định dạng văn bản trên cả hai màn hình video và máy in. Những ứng dụng trên nền Windows trực
tiếp không truy nhập phần cứng đồ họa. Thay vào đó, GDI tương tác với những bộ điều khiển thiết bị
thay mặt cho những ứng dụng.

• GDI sử dụng ở đâu thích hợp
GDI có thể được sử dụng trong tất cả các ứng dụng trên nền Windows.

• GDI Dành cho người phát triển
API này được thiết kế cho sự sử dụng bởi những lập trình viên C/ C++. Sự Thân mật với hệ giao diện đồ
hoạ Windows và kiến trúc được điều khiển bởi thông báo được yêu cầu.
Những yêu cầu thời gian thực hiện cho thông tin trên những hệ điều hành nào được yêu cầu sử dụng một
chức năng đặc biệt, nhìn thấy mục những yêu cầu của tài liệu theo chức năng.

4.


Những đối tượng GDI
Những đối tượng GDI hỗ trợ chỉ có một handle trên đối tượng. Những handle tới những đối tượng GDI
riêng tư đối với một quá trình. Mà, chỉ là quá trình Mà tạo ra đối tượng GDI có thể sử dụng handle đối
tượng.
Có một giới hạn lý thuyết của handle 65,536 GDI trên phiên họp. Tuy nhiên, số cực đại của những cán
GDI mà có thể được mở trên phiên họp thông thường thấp hơn, từ nó được ảnh hưởng bởi kí ức sẵn có.
Windows 2000: có một giới hạn handle 16,384 GDI trên phiên họp.
Có một sự hư hỏng nữa - Giới hạn quá trình của handle GDI.

5.

Những hạn chế
Mỗi thời gian một cửa sổ được mở, nó tiêu thụ những đối tượng GDI. Như sự phức tạp của cửa sổ tăng,
với những đặc tính bổ sung như những nút và những ảnh, cách dùng đối tượng GDI của nó cũng tăng.


Khi quá nhiều đối tượng đang sử dụng, Windows (thì) không thể vẽ những bất kỳ GDI đối tượng nào
nữa, dẫn tới phần mềm kết nối không tốt và bị đứng, chương trình tính toán chậm đi
GDI có sẵn 1 sự tổng thay đổi cho từng phiên bản Windows đến. Windows 95, 98 và Millenium có một
giới hạn của những handle tổng 1,200, trong khi Windows XP và Viễn cảnh có một giới hạn những đối
tượng 10,000, và Windows 2000 có một giới hạn của những đối tượng 16,384.
Những phiên bản trước đó của Windows như Windows 3.1 và Windows 98 bao gồm một chương trình
Meter .Tài nguyên để cho phép người sử dụng theo dõi nhiều Tài nguyên GDI hệ thống tổng đang sử
dụng như thế nào. Sau đó những phiên bản như Windows 2000 và Windows XP có thể báo cáo cách
dùng đối tượng GDI (cho) mỗi chương trình trong việc quản lý giao nhiệm vụ xử lý, nhưng GDI không
thể báo người sử dụng biết khả năng GDI sẵn có.
Việc tràn qua khả năng GDI có thể ảnh hưởng đến chính Windows, cản trở những cửa sổ mới từ việc
mở, những thực đơn trình bày, và bắt đầu xuất hiện những hộp thoại cảnh báo. Do đó việc hiển thị sẽ
khác và có thể tiềm tàng yêu cầu bị bắt buộc khởi động lại cứng của hệ thống, từ đó nó cản trở những

chương trình hệ thống lõi vận hành.
Chẳng hạn, việc bắt buộc một quá trình frozen để kết thúc sử dụng quản lý những nhiệm vụ bình thường
làm một cửa sổ " Bạn có chắc chắn không? " xuất hiện. Nếu như GDI không có hỗ trợ, thì những tiếng
chuông chỉ Windows Một lỗi và sự lựa chọn báo động không xuất hiện, vì vậy GDI- những quá trình
chan chứa không thể được hoàn thành.

6.

Ứng dụng của GDI:
Hình ảnh, Bitmaps, và Metafiles
Microsoft Windows GDI + cung cấp các hình ảnh cho các lớp làm việc với hình ảnh raster (bitmaps) và
hình ảnh véc tơ (metafiles). Các lớp Bitmap và các lớp Metafile cả hai thừa kế từ lớp hình ảnh. Các
lớp Bitmap về mở rộng khả năng của những lớp hình ảnh bằng cách cung cấp thêm cho các phương
pháp tải, tiết kiệm, và thao tác trên raster hình ảnh. Metafile mở rộng các lớp về khả năng của những
lớp hình ảnh bằng cách cung cấp thêm cho các phương pháp ghi âm và quan sát hình ảnh véc tơ.
a. Loại Bitmaps
Một Bitmap là một mảng của bit đó xác định màu sắc của mỗi điểm ảnh trong một mảng chữ nhật
của pixel. Số lượng các bit dành riêng cho một cá nhân pixel xác định số lượng màu sắc mà có thể
được giao cho rằng pixel. Ví dụ, nếu mỗi điểm ảnh được đại diện bởi 4 bit, sau đó một pixel có thể
được chỉ định một trong số 16 màu sắc khác nhau (2 ^ 4 = 16). Bảng dưới đây là một số ví dụ về số
lượng màu sắc mà có thể được giao cho một điểm ảnh đại diện bởi một số bit.
Bit trong mỗi điểm ảnh

Số màu sắc mà có thể được giao cho một pixel

1

2^1=2

2


2^2=4

4

2 ^ 4 = 16


8

2 ^ 8 = 256

16

2 ^ 16 = 65.536

24

2 ^ 24 = 16, 777, 216

Đĩa lưu trữ các tập tin rằng bitmaps thường có chứa một hoặc nhiều thông tin rằng khối lưu trữ
thông tin như là số bit trong mỗi pixel, số pixel trong mỗi hàng, và số hàng trong mảng. Một tập tin
như vậy cũng có thể chứa một bảng màu sắc (đôi khi còn gọi là bảng màu). Một bảng màu sắc bản
đồ số trong Bitmap để cụ thể màu sắc. Illustration sau đây cho thấy một hình ảnh mở rộng cùng với
các Bitmap và bảng màu. Mỗi điểm ảnh được thể hiện bằng một số 4-bit, cho nên có 2 ^ 4 = 16 màu
sắc trong bảng màu. Mỗi màu sắc trong bảng, được thể hiện bằng một số 24-bit: 8 bit cho màu đỏ, 8
bit cho màu xanh lá cây, và 8 bit cho màu xanh. Những số được hiển thị trong thập lục (16 cơ sở)
mẫu: A = 10, B = 11, C = 12, D = 13, E = 14, F = 15.

Look at the pixel trong hàng 3, cột 5 của hình ảnh. Tương ứng trong số Bitmap là 1. Các bảng màu

cho chúng tôi biết rằng 1 đại diện cho màu đỏ, vì vậy các pixel là màu đỏ. Tất cả các mục trong
hàng đầu của Bitmap có 3. Các bảng màu cho chúng tôi biết rằng đại diện cho 3 màu xanh, vì vậy
tất cả các pixel trong hàng đầu của hình ảnh có màu xanh.
Một số lưu ý bitmaps được lưu trữ trong dưới dạng-up; các số trong hàng đầu tiên của các Bitmap
tương ứng với các pixel ở dưới cùng hàng của hình ảnh.
Một Bitmap rằng các cửa hàng đánh chỉ mục vào một bảng màu sắc được gọi là bảng màu-mục
Bitmap. Một số bitmaps không có cần cho một bảng màu sắc. Ví dụ, nếu Bitmap sử dụng 24 bit
trong mỗi điểm ảnh, mà Bitmap có thể lưu trữ các màu sắc mình hơn là đánh chỉ mục vào một bảng
màu sắc. Sau đây là một Bitmap Sơ đồ minh họa cho thấy rằng cửa hàng trực tiếp màu sắc (24 bit
trong mỗi pixel) hơn là sử dụng một bảng màu sắc. Các Illustration cũng thể hiện một mở rộng xem


các hình ảnh tương ứng. Trong Bitmap, FFFFFF đại diện cho màu trắng, đỏ tượng trưng FF0000,
00FF00 đại diện cho màu xanh lá cây, và 0000FF đại diện cho màu xanh.

Đồ họa định dạng tệp tin
Có rất nhiều tiêu chuẩn cho các định dạng bitmaps tiết kiệm trong file. Microsoft Windows GDI +
đồ họa hỗ trợ các định dạng tệp tin được mô tả trong đoạn văn sau đây.
Bitmap (BMP)
BMP là một định dạng chuẩn được sử dụng bởi Windows để lưu trữ thiết bị-độc lập-độc lập và ứng
dụng hình ảnh. Số lượng các bit trong mỗi điểm ảnh (1, 4, 8, 15, 24, 32, hoặc 64) cho một BMP là
tập tin chỉ định trong một tập tin tiêu đề. BMP các tệp tin với 24 bit trong mỗi điểm ảnh được phổ
biến.
Đồ họa Interchange Format (GIF)
GIF là một định dạng chung cho rằng hình ảnh xuất hiện trên các trang Web. Gifs làm việc tốt cho
hình vẽ, hình ảnh của với khối rắn màu sắc, và hình ảnh với màu sắc nét, ranh giới giữa. Gifs được
nén, nhưng không có thông tin bị mất trong quá trình nén; decompressed một hình ảnh là chính xác
giống như ban đầu. Một màu sắc trong một GIF có thể được thiết kế như minh bạch, để các hình
ảnh sẽ có màu nền của bất kỳ trang web có hiển thị nó. Một chuỗi các hình ảnh GIF có thể được lưu
trữ trong một tập tin vào một mẫu hoạt ảnh GIF. Gifs cửa hàng tại hầu hết các 8 bit trong mỗi điểm

ảnh, do đó họ có giới hạn đối với 256 màu sắc.
Photographic nhóm các chuyên gia (jpeg)
JPEG nén là một chương trình làm việc tốt cho phong cảnh thiên nhiên, chẳng hạn như quét ảnh.
Một số thông tin bị mất trong quá trình nén, nhưng thường là những mất mát để imperceptible của
mắt người. Màu sắc 24 JPEG lưu trữ hình ảnh bit trong mỗi pixel, để họ có khả năng hiển thị hơn 16
triệu màu sắc. Ngoài ra còn có một màu xám định dạng JPEG rằng các cửa hàng 8 bit cho mỗi pixel.
JPEGs không hỗ trợ hình ảnh động hoặc minh bạch.
Mức độ nén trong JPEG là hình ảnh cấu hình, nhưng cao hơn mức độ nén (file nhỏ hơn) trong kết
quả thêm các thiệt hại của thông tin. Một tỷ lệ nén 20:1 sản xuất thường là một hình ảnh của mắt
người thấy khó để phân biệt từ ban đầu. Illustration sau đây cho thấy một hình ảnh BMP và JPEG
hai hình ảnh đã được nén từ rằng hình ảnh BMP. JPEG là người đầu tiên có một tỷ lệ nén 4:1 và thứ
hai, JPEG có một tỷ lệ nén của khoảng 8:1.


JPEG nén không hoạt động tốt cho hình vẽ, khối rắn màu sắc, và sắc nét ranh giới. Illustration sau
đây cho thấy một BMP cùng với hai JPEGs và một GIF. Các JPEGs và GIF đã được nén từ BMP.
Các tỷ lệ nén là 4:1 cho GIF, 4:1 cho nhỏ hơn JPEG, và 8:3 cho lớn hơn JPEG. Lưu ý rằng các GIF
duy trì sự thăng ranh giới dọc theo dòng, nhưng có xu hướng JPEGs blur các ranh giới.

JPEG là một chương trình nén, không phải là một tập tin định dạng. Kích JPEG Interchange Format
(JFIF) là một tập tin định dạng thường sử dụng và chuyển giao cho lưu trữ hình ảnh đã được nén
theo JPEG chương trình. JFIF file hiển thị bằng cách sử dụng các trình duyệt web. Jpg mở rộng.
Exchangeable Image File (Exif)
Exif là một tập tin định dạng được sử dụng cho các tấm ảnh chụp bằng máy ảnh kỹ thuật số. Exif
một tập tin chứa một hình ảnh được nén theo JPEG đặc điểm kỹ thuật. Exif một tập tin cũng chứa
các thông tin về chụp ảnh (chụp ngày, shutter tốc độ, thời gian tiếp xúc, và như vậy trên) và các
thông tin về camera (nhà sản xuất, mô hình, và như vậy về).
Portable Network Graphics (PNG)
Các PNG giữ nhiều lợi thế của các định dạng GIF nhưng cũng cung cấp những khả năng vượt quá
phạm vi của GIF. Giống như file GIF, PNG file nén được mà không có thiệt hại của thông tin. PNG

các tập có thể lưu trữ màu sắc với 8, 24, hoặc 48 bit trong mỗi điểm ảnh và màu xám quy mô với 1,
2, 4, 8, hoặc 16 bit cho mỗi pixel. Ngược lại, các tập tin GIF có thể sử dụng chỉ 1, 2, 4, hoặc 8 bit
cho mỗi pixel. Một PNG cũng có thể lưu giữ một giá trị alpha cho mỗi pixel, mà xác định mức độ
mà màu sắc của pixel đó là pha trộn với màu nền.
PNG trên GIF cải thiện trong khả năng của nó progressively hiển thị một hình ảnh; có nghĩa là, để
hiển thị tốt hơn và tốt hơn approximations của hình ảnh khi đến hơn một kết nối mạng. PNG các tập
có thể chứa gamma chỉnh sửa màu và các thông tin đó, để hình ảnh có thể được ra một cách chính
xác về một loạt các thiết bị hiển thị.


Từ khóa định dạng tập tin ảnh (TIFF)
TIFF là một linh hoạt và extendable định dạng được hỗ trợ bởi nhiều nền tảng và hình ảnh-xử lý các
ứng dụng. TIFF file có thể lưu trữ hình ảnh với một số arbitrary bit trong mỗi điểm ảnh và có thể là
nhân viên của một loạt các thuật toán nén. Một số hình ảnh có thể được lưu trữ trong một, nhiều
trang-TIFF file. Thông tin liên quan đến các hình ảnh (quét ra, máy chủ, máy tính, loại hình nén,
định hướng, mẫu cho mỗi pixel, và như vậy trên) có thể được lưu giữ trong các tập tin và sắp xếp
thông qua việc sử dụng các thẻ. Các định dạng TIFF có thể được kéo dài khi cần thiết do có quyết
định phê duyệt và thêm các thẻ mới.

b. Metafiles
Microsoft Windows GDI + cung cấp các Metafile lớp học để bạn có thể ghi lại và hiển thị metafiles.
A metafile, cũng được gọi là một hình ảnh véc tơ, là một hình ảnh đã được lưu giữ như là một chuỗi
các lệnh vẽ và cài đặt. Các lệnh và cài đặt ghi lại trong một Metafile đối tượng có thể được lưu giữ
trong bộ nhớ hoặc lưu vào một tập tin hay dòng.
GDI + có thể hiển thị metafiles đã được lưu trữ trong các định dạng sau đây:


Windows Metafile Format (WMF)




Tăng cường Metafile (EMF)



EMF +
GDI + có thể ghi lại metafiles trong EMF và EMF + định dạng, nhưng không có trong các định
dạng WMF.
EMF + là một mở rộng để EMF cho phép GDI + sẽ được lưu hồ sơ. Có hai biến thể trên EMF +
định dạng: EMF + Chỉ và EMF + Dual. EMF + Chỉ metafiles chứa chỉ GDI + mẫu tin. Metafiles
như vậy có thể được hiển thị bởi GDI + nhưng không phải do Windows thiết bị giao diện đồ họa
(GDI). EMF + Dual metafiles chứa GDI + và GDI mẫu tin. Mỗi GDI + ghi lại trong một EMF +
Dual metafile là cặp đôi với một luân phiên GDI hồ sơ. Metafiles như vậy có thể được hiển thị bởi
GDI + hay do GDI.
Ví dụ sau một mẫu tin cài đặt và vẽ một lệnh trong một tập tin trên đĩa. Lưu ý rằng các ví dụ, tạo
một đồ họa đối tượng, và rằng các constructor đồ họa cho các đối tượng nhận được địa chỉ của một
đối tượng Metafile như là một đối số.
Sao chép Mã số
myMetafile = mới Metafile (L "MyDiskFile.emf", hdc);
myGraphics = đồ họa mới (myMetafile);
myPen = Bút mới (màu (255, 0, 0, 200));
myGraphics-> SetSmoothingMode (SmoothingModeAntiAlias);
myGraphics-> DrawLine (myPen, 0, 0, 60, 40);


xóa myGraphics;
xóa myPen;
xóa myMetafile;
Ví dụ như là trước cho thấy, các lớp học đồ họa là chìa khóa để ghi âm và hướng dẫn cài đặt trong
một đối tượng Metafile. Bất kỳ cuộc gọi được thực hiện cho một phương thức của một đối tượng đồ

họa có thể được ghi lại trong một đối tượng Metafile. Tương tự, bạn có thể đặt bất kỳ tài sản của
một đối tượng đồ họa và ghi lại rằng cài đặt trong một đối tượng Metafile. Ghi âm kết thúc khi các
đối tượng đồ họa này sẽ bị xóa hoặc đi ra khỏi phạm vi.
Ví dụ sau hiển thị thông tin metafile tạo ra trong ví dụ trước. Các metafile được hiển thị với những
góc trái phía trên tại khách sạn (100, 100).
Sao chép Mã số
Đồ họa myGraphics (hdc);
Hình ảnh myImage (L "MyDiskFile.emf");
myGraphics.DrawImage (& myImage, 100, 100);
Ví dụ sau đều có một vài mẫu tin cài đặt (clipping khu vực, thế giới chuyển đổi, và chế độ
smoothing) trong một đối tượng Metafile. Sau đó, các mã hồ sơ một số hướng dẫn vẽ. Các hướng
dẫn và cài đặt sẽ được lưu trong một tập tin trên đĩa.
Sao chép Mã số
myMetafile = mới Metafile (L "MyDiskFile2.emf", hdc);
myGraphics = đồ họa mới (myMetafile);
myGraphics-> SetSmoothingMode (SmoothingModeAntiAlias);
myGraphics-> RotateTransform (30);
/ / Tạo một elliptical clipping khu vực.
GraphicsPath myPath;
myPath.AddEllipse (0, 0, 200, 100);
Khu vực myRegion (& myPath);
myGraphics-> SetClip (& myRegion);
Bút myPen (màu (255, 0, 0, 255));
myGraphics-> DrawPath (myPen &, & myPath);
cho (Công j = 0; j <= 300; j + = 10)
(
myGraphics-> DrawLine (& myPen, 0, 0, 300 - j, j);


)

xóa myGraphics;
xóa myMetafile;
Ví dụ sau hiển thị hình ảnh metafile tạo ra trong ví dụ trước.
Sao chép Mã số
myGraphics = đồ họa mới (hdc);
myMetafile = mới Metafile (L "MyDiskFile.emf");
myGraphics-> DrawImage (myMetafile, 10, 10);
Illustration sau đây cho thấy sản lượng của các mã trước. Lưu ý các antialiasing, các elliptical
clipping khu vực, và trong 30-độ luân phiên.

7. Nhìn chung Cơ cấu tổ chức của GDI

GDI gần khách hàng bao gồm 1 thư viện liên kết với một ứng dụng và 1 tiểu GDI module trình điều khiển, mà
được tải như là một thiết bị driver.exe,. Ngoài ra, GDI-Tieu3 cũng bao gồm 1 tùy chọn hiển thị ảo điều khiển để
chạy một ứng dụng trong môi trường GDI, cũng như một phần mềm redering module. Các dạng chi tiết

Figure 11-1: GDI-sub overview diagram Hình 11-1: GDI-pd tổng quan sơ đồ


GDI- Mức dưới vẽ Thư viện Khách dùng(GDI-Sub Drawing Client Library)
Thư viện này chủ yếu (thì) chiụ trách nhiệm về cung cấp Giống ong liên quan bản vẽ (cho) ứng dụng và
phát sinh những danh sách lệnh phụ thuộc trên phần cứng. Đây là một thư viện khách dùng liên kết với
một ứng dụng, như vậy nó sinh ra ra lệnh những danh sách tại tốc độ cao từ một số lớn lệnh vẽ không có
việc yêu cầu đảo mạch quá trình hay điều khiển loại trừ tới cá nhân vẽ những sự gọi API.
 Thư viện Khách hàng Điều khiển Màn hình GDI- Mức dưới(GDI-Sub Display Control Client Library)
Đây là một thư viện đa dụng mà qui định Giống ong dành cho điều khiển màn hình, điều khiển bộ đệm,
và không bản vẽ khác vận hành (cho) ứng dụng. Thư viện này chủ yếu giao tiếp với GDI- người điều
khiển Mức dưới trong không gian xử lý khác để kiểm soát bộ nhớ video và phần cứng, mà là tài nguyên
dùng chung toàn hệ thống.




 Những thư viện Người phục vụ GDI- Mức dưới (GDI-Sub Server Libraries)

Người phục vụ GDI- Mức dưới được thực hiện khi một người điều khiển DLL tải từ Thiết bị.exe. Thư
viện Người phục vụ GDI- Mức dưới qui định những chức năng (cho) sự thi hành người điều khiển GDIMức dưới bao gồm truyền thông với Thư viện khách hàng, quản lý bộ nhớ video/ phần cứng loại trừ, và
điều khiển tính toán thời gian
 Mã Thích nghi Phần cứng(Hardware Adaptation Code)
Trong Mã Thích nghi Phần cứng, những Mã điều khiển Phần cứng được viết (cho) những chức năng
như bắt đầu (của) sự thực hiện lệnh, màn hình bắt đầu sự điều khiển vị trí, và sự dò tìm ngắt. áp dụng
những thư viện Người phục vụ GDI- Mức dưới vào phần cứng những đặc trưng làm khả dĩ cầm lấy lợi
thế đầy đủ của phần cứng tại chi phí tối thiểu

Cấu trúc của GDI
Microsoft Windows GDI + định nghĩa các cấu trúc sau đây:


BlurParams



BrightnessContrastParams



ColorBalanceParams



ColorCurveParams




ColorLUTParams



ColorMap



ColorMatrix



ColorPalette



ENHMETAHEADER3



GdiplusAbort



GdiplusStartupInput




GdiplusStartupOutput



HueSaturationLightnessParams



LevelsParams




PWMFRect16



RedEyeCorrectionParams



SharpenParams



TintParams




WmfPlaceableFileHeader

Cơ cấu tổ chức BlurParams
Một BlurParams 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 Gaussian blur.
Bạn có thể áp dụng một Gaussian blur ảnh hưởng đến một Bitmap bằng cách làm theo các bước sau.
1.

Tạo và khởi tạo một cơ cấu BlurParams.

2.

Qua địa chỉ của cơ cấu BlurParams đến SetParameters phương pháp của một Blur đối tượng.

3.

Qua địa chỉ của Blur để các đối tượng đồ họa:: DrawImage phương pháp hoặc cho Bitmap::
ApplyEffect phương pháp.

Cú pháp
typedef struct (
float bán kính;
BOOL expandEdge;
BlurParams);
Thành viên
bán kính
Thực tế rằng số xác định bán kính blur (bán kính hình Gaussian convolution hạt nhân) trong
pixel. Ban phải được trong khoảng 0 thông qua 255. Như là bán kính tăng, các kết quả sẽ trở
thành Bitmap thêm blurry.
expandEdge
Boolean xác định giá trị rằng cho dù các Bitmap mở rộng bởi một số tiền bằng với blur bán

kính. Nếu TRUE, việc mở rộng thị trường Bitmap bởi một số tiền bằng kính để nó có thể có
vành mềm. Nếu FALSE, các Bitmap vẫn giữ nguyên kích thước và các vành mềm được cắt bớt.
Remarks
Một trong hai Bitmap:: ApplyEffect phương pháp blurs Bitmap trong một nơi. Đặc biệt là Bitmap::
ApplyEffect không màng biết các phương pháp expandEdge tham số.
Thông tin cơ cấu
Header

Tuyên bố trong Gdipluseffects.h, bao gồm gdiplus.h


Nhập thư viện

gdiplus.lib

Tối thiểu có sẵn

GDI + 1,1

Tối thiểu cho hệ điều
hành

Windows 98, Windows XP, Windows 2000, Windows
NT 4.0 SP6

Cơ cấu tổ chức BrightnessContrastParams
Một BrightnessContrastParams cấu trúc chứa các thành viên mà chỉ định một tính chất của một brightness
hoặc phản điều chỉnh.
Bạn có thể thay đổi brightness hoặc phản (hoặc cả hai) của một Bitmap bằng cách làm theo các bước sau.
1.


Tạo và khởi tạo một cơ cấu BrightnessContrastParams.

2.

Qua địa chỉ của cơ cấu BrightnessContrastParams đến SetParameters phương pháp của một
BrightnessContrast đối tượng.
Qua địa chỉ của BrightnessContrast cho các đối tượng đồ họa:: DrawImage phương pháp hoặc cho

3.

Bitmap:: ApplyEffect phương pháp.
Cú pháp
typedef struct (
Công brightnessLevel;
Công contrastLevel;
BrightnessContrastParams);
Thành viên
brightnessLevel
Integer trong phạm vi -255 thông qua 255 xác định rằng brightness cấp. Nếu giá trị là 0, các
brightness vẫn giữ nguyên. Như là di chuyển giá trị từ 0 đến 255, trong brightness của hình ảnh
tăng lên. Như là di chuyển giá trị từ 0 đến -255, các brightness của hình ảnh giảm.
contrastLevel
Integer trong phạm vi -100 rằng thông qua 100 xác định mức độ tương phản. Nếu giá trị là 0,
các phản vẫn giữ nguyên. Như là di chuyển giá trị từ 0 đến 100, các phản của hình ảnh tăng lên.
Như là di chuyển giá trị từ 0 đến -100, các phản của hình ảnh giảm.
Thông tin cơ cấu
Header

Tuyên bố trong Gdipluseffects.h, bao gồm gdiplus.h


Nhập thư viện

gdiplus.lib

Tối thiểu có sẵn

GDI + 1,1

Tối thiểu cho hệ điều
hành

Windows 98, Windows XP, Windows 2000, Windows
NT 4.0 SP6


Cơ cấu tổ chức ColorBalanceParams
Một ColorBalanceParams 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 số dư điều chỉnh màu
sắc.
Bạn có thể thay đổi màu sắc của một số dư Bitmap bằng cách làm theo các bước sau.
1.

Tạo và khởi tạo một cơ cấu ColorBalanceParams.

2.

Qua địa chỉ của cơ cấu ColorBalanceParams đến SetParameters phương pháp của một ColorBalance
đối tượng.
Qua địa chỉ của ColorBalance cho các đối tượng đồ họa:: DrawImage phương pháp hoặc cho Bitmap::


3.

ApplyEffect phương pháp.
Cú pháp
typedef struct (
Công cyanRed;
Công magentaGreen;
Công yellowBlue;
ColorBalanceParams);
Thành viên
cyanRed
Integer trong phạm vi -100 thông qua 100 xác định rằng một thay đổi trong số lượng màu đỏ
trong hình ảnh. Nếu giá trị là 0, không có thay đổi. Như là di chuyển giá trị từ 0 đến 100, số
lượng màu đỏ trong hình ảnh và tăng số lượng Cyan giảm. Như là di chuyển giá trị từ 0 đến 100, số tiền màu đỏ trong hình ảnh và giảm số lượng Cyan tăng.
magentaGreen
Integer trong phạm vi -100 thông qua 100 xác định rằng một thay đổi trong số tiền của màu
xanh lá cây trong hình. Nếu giá trị là 0, không có thay đổi. Như là di chuyển giá trị từ 0 đến
100, số tiền của màu xanh lá cây trong hình ảnh và tăng số lượng Magenta giảm. Như là di
chuyển giá trị từ 0 đến -100, số tiền của màu xanh lá cây trong hình ảnh và giảm số lượng
Magenta tăng.
yellowBlue
Integer trong phạm vi -100 thông qua 100 xác định rằng một thay đổi trong số tiền của màu
xanh trong hình. Nếu giá trị là 0, không có thay đổi. Như là di chuyển giá trị từ 0 đến 100, số
lượng màu xanh trong hình ảnh và tăng số lượng vàng giảm. Như là di chuyển giá trị từ 0 đến 100, số tiền của màu xanh trong hình ảnh và giảm số lượng vàng tăng lên.
Thông tin cơ cấu
Header

Tuyên bố trong Gdipluseffects.h, bao gồm gdiplus.h



Nhập thư viện

gdiplus.lib

Tối thiểu có sẵn

GDI + 1,1

Tối thiểu cho hệ điều
hành

Windows 98, Windows XP, Windows 2000, Windows
NT 4.0 SP6

Cơ cấu tổ chức ColorCurveParams
Một ColorCurveParams cấu trúc chứa một thành viên mà chỉ định để điều chỉnh các màu sắc của một
Bitmap.
Các ColorCurve lớp học bao gồm tám điều chỉnh riêng biệt: xúc, mật độ, Ngược lại, nổi bật, bóng tối, midtone,
trắng bão hòa, bão hòa và đen. Bạn có thể áp dụng một trong những điều chỉnh cho một Bitmap bằng cách làm
theo các bước sau.
1.

Tạo và khởi tạo một cơ cấu ColorCurveParams.

2.

Qua địa chỉ của cơ cấu ColorCurveParams đến SetParameters phương pháp của một đối tượng
ColorCurve.
Qua địa chỉ của ColorCurve cho các đối tượng đồ họa:: DrawImage phương pháp hoặc cho Bitmap::


3.

ApplyEffect phương pháp.
Cú pháp
typedef struct (
CurveAdjustments điều chỉnh;
CurveChannel kênh;
Công adjustValue;
ColorCurveParams);
Thành viên
điều chỉnh
Yếu tố của CurveAdjustments Enumeration mà xác định được áp dụng để điều chỉnh.
kênh
Yếu tố của CurveChannel Enumeration mà xác định màu sắc mà các kênh để điều chỉnh áp
dụng.
adjustValue
Integer rằng xác định cường độ của các điều chỉnh. Trong phạm vi có thể chấp nhận được giá
trị phụ thuộc vào đó điều chỉnh đang được áp dụng. Để xem thông phạm vi có thể chấp nhận giá
trị cho một điều chỉnh, xem thông CurveAdjustments Enumeration.
Thông tin cơ cấu
Header

Tuyên bố trong Gdipluseffects.h, bao gồm gdiplus.h


Nhập thư viện

gdiplus.lib

Tối thiểu có sẵn


GDI + 1,1

Tối thiểu cho hệ điều
hành

Windows 98, Windows XP, Windows 2000, Windows
NT 4.0 SP6

Cơ cấu tổ chức ColorLUTParams
Một ColorLUTParams cấu trúc chứa các thành viên (màu sắc bảng tra cứu) mà chỉ định để điều chỉnh màu
sắc một Bitmap.
Bạn có thể áp dụng một tùy chỉnh để điều chỉnh một Bitmap bằng cách làm theo các bước sau.
1.

ColorLUTParams tạo ra một cơ cấu.

2.

Tất cả các thành viên của ColorLUTParams cơ cấu là một màu bảng tra cứu (mảng 256 byte) cho một
kênh màu sắc, alpha, màu đỏ, xanh, hoặc màu xanh. Gán giá trị của sự lựa chọn của bạn để cho bốn
bảng tra cứu.

3.

Qua địa chỉ của cơ cấu ColorLUTParams đến SetParameters phương pháp của một ColorLUT đối
tượng.

4.


Qua địa chỉ của ColorLUT cho các đối tượng đồ họa:: DrawImage phương pháp hoặc cho Bitmap::
ApplyEffect phương pháp.

Cú pháp
typedef struct (
ColorChannelLUT lutB;
ColorChannelLUT lutG;
ColorChannelLUT lutR;
ColorChannelLUT luta;
ColorLUTParams);
Thành viên
lutB
Mảng 256 byte đó xác định điều chỉnh cho các kênh màu xanh.
lutG
Mảng 256 byte đó xác định điều chỉnh cho các kênh màu xanh lá cây.
lutR
Mảng 256 byte đó xác định điều chỉnh cho các kênh màu đỏ.
luta
Mảng 256 byte đó xác định điều chỉnh cho các kênh alpha.
Remarks


Một bảng tra cứu xác định như thế nào màu sắc kênh hiện có giá trị nên được thay thế bởi các giá trị mới. Một
màu kênh giá trị của j là thay thế bởi các jth mục nhập trong bảng tra cứu cho rằng kênh. Ví dụ, một màu xanh
kênh hiện có giá trị của 25 sẽ được thay thế bởi giá trị của lutB [25].
ColorChannelLUT các loại dữ liệu được định nghĩa trong GdiplusColorMatrix.h như sau:
typedef BYTE ColorChannelLUT[256];
Thông tin cơ cấu
Header


Tuyên bố trong Gdipluseffects.h, bao gồm gdiplus.h

Nhập thư viện

gdiplus.lib

Tối thiểu có sẵn

GDI + 1,1

Tối thiểu cho hệ điều
hành

Windows 98/Me, Windows XP, Windows 2000, Windows
NT 4.0 SP6

Cơ cấu tổ chức ColorMap
ColorMap các cấu trúc chứa hai màu đối tượng. Một số phương pháp của ImageAttributes lớp điều chỉnh hình
ảnh màu sắc bằng cách sử dụng một màu remap bảng, đó là một mảng của cấu trúc ColorMap.
Cú pháp
typedef struct (
OldColor màu;
NewColor màu;
ColorMap);
Thành viên
oldColor
Màu sắc ban đầu.
newColor
Các màu sắc mới.
Thông tin cơ cấu

Header

Tuyên bố trong Gdipluscolormatrix.h, bao gồm gdiplus.h

Nhập thư viện

gdiplus.lib

Tối thiểu có sẵn

GDI + 1,0

Tối thiểu cho hệ điều
hành

Windows 98/Me, Windows XP, Windows 2000, Windows
NT 4.0 SP6

Cơ cấu tổ chức ColorMatrix
ColorMatrix các cấu trúc chứa một ma trận 5 × 5 thực sự của số điện thoại. Một số phương pháp của
ImageAttributes lớp điều chỉnh hình ảnh màu sắc bằng cách sử dụng một màu ma trận.


Cú pháp
typedef struct (
REAL m [5] [5];
ColorMatrix);
Thành viên
m
5 × 5 mảng thực sự của số điện thoại.

Remarks
A 5 × 5 màu ma trận là một ma trận đồng cho một không gian 4-chuyển đổi. Các yếu tố trong hàng thứ năm và
thứ năm của cột 5 × 5 đồng ma trận phải được 1, và tất cả các yếu tố khác trong cột thứ năm phải được 0. Màu
sắc bảng ma trận này được sử dụng để chuyển đổi màu sắc vectors. Là người đầu tiên bốn thành phần của một
véc tơ giữ màu đỏ, xanh, màu xanh, và các thành phần alpha (trong đó theo thứ tự) của một màu. Thứ năm
thành phần của một màu véc tơ luôn luôn là 1.
Thông tin cơ cấu
Header

Tuyên bố trong Gdipluscolormatrix.h, bao gồm gdiplus.h

Nhập thư viện

gdiplus.lib

Tối thiểu có sẵn

GDI + 1,0

Tối thiểu cho hệ điều
hành

Windows 98/Me, Windows XP, Windows 2000, Windows
NT 4.0 SP6

Cơ cấu tổ chức ColorPalette
ColorPalette định nghĩa trong cấu trúc của một mảng màu sắc làm nên một bảng màu. Các màu sắc đang có
32-bit ARGB màu sắc.
Cú pháp
typedef struct (

UINT cờ;
UINT tuyển;
ARGB mục có [1];
ColorPalette);
Thành viên
Cờ
Kết hợp của cờ từ PaletteFlags Enumeration.
Truy cập
Số yếu tố trong mục có mảng.


Mục
Mảng màu sắc của ARGB.
Thông tin cơ cấu
Header

Tuyên bố trong Gdipluspixelformats.h, bao gồm gdiplus.h

Nhập thư viện

gdiplus.lib

Tối thiểu có sẵn

GDI + 1,0

Tối thiểu cho hệ điều
hành

Windows 98/Me, Windows XP, Windows 2000, Windows

NT 4.0 SP6

Cơ cấu tổ chức ENHMETAHEADER3
ENHMETAHEADER3 chứa các cấu trúc dữ liệu nâng cao-metafile bao gồm các kích thước của metafile hình
ảnh, số lượng các mẫu tin trong metafile, và các nghị quyết của điện thoại trên mà metafile đã được tạo.
Cú pháp
typedef struct (
DWORD iType;
DWORD nSize;
RECTL rclBounds;
RECTL rclFrame;
DWORD dSignature;
DWORD nVersion;
DWORD Nbytes;
DWORD nRecords;
CHỮ nHandles;
CHỮ sReserved;
DWORD nDescription;
DWORD offDescription;
DWORD nPalEntries;
SIZEL szlDevice;
SIZEL szlMillimeters;
ENHMETAHEADER3);
Thành viên
iType
Ghi hình. Giá trị là luôn luôn EMR_HEADER.
nSize
Cơ cấu kích thước, trong byte. Điều này có thể được lớn hơn giá trị trả lại do sizeof
(ENHMETAHEADER3).



rclBounds
Bounding rectangle, trong điện thoại, đơn vị, cho hình ảnh được lưu trữ trong metafile.
rclFrame
Hình chữ nhật, trong 0,01 millimeter, đơn vị, mà quanh hình ảnh được lưu trữ trong metafile.
dSignature
Phải được ENHMETA_SIGNATURE.
nVersion
Số phiên bản của các định dạng metafile. Phiên bản hiện hành là 0x10000.
Nbytes
Kích thước, trong bytes, của metafile.
nRecords
Số hồ sơ trong metafile.
nHandles
Số xử lý trong metafile xử lý các bảng. Xử lý các chỉ mục là không reserved.
sReserved
Reserved. Phải được không.
nDescription
Số ký tự trong chuỗi có chứa mô tả về các metafile của nội dung. 0 thành viên này là metafile,
không có gì nếu không có một mô tả chuỗi.
offDescription
Bù đắp từ đầu của ENHMETAHEADER3 để cấu trúc chuỗi có chứa mô tả về các metafile của
nội dung. 0 thành viên này là metafile, không có gì nếu không có một mô tả chuỗi.
nPalEntries
Số mục nhập trong bảng màu metafile.
szlDevice
Nghị quyết, trong pixel, tham khảo của điện thoại.
szlMillimeters
Nghị quyết, trong millimeters, tham khảo của điện thoại.
Thông tin cơ cấu

Header

Tuyên bố trong Gdiplusmetaheader.h, bao gồm gdiplus.h

Nhập thư viện

gdiplus.lib

Tối thiểu có sẵn

GDI + 1,0

Tối thiểu cho hệ điều
hành

Windows 98/Me, Windows XP, Windows 2000, Windows
NT 4.0 SP6

Cơ cấu tổ chức GdiplusAbort


GdiplusAbort trong cơ cấu cung cấp một cơ chế cho phép Microsoft Windows GDI + để gọi một ứng dụngChu Ân Lai xác định phương pháp theo định kỳ trong suốt thời gian hoạt động rendering.
Cú pháp
typedef struct (
GdiplusAbort);
Thành viên
Remarks
GdiplusAbort trong cơ cấu chỉ có một phương pháp, một phương pháp ảo tên Chu Ân Lai. Các
GdiplusAbort không có cấu trúc dữ liệu các thành viên.
Để tạo một phương pháp gọi lại, làm theo các bước sau.

Tạo ra một cơ cấu mà descends từ GdiplusAbort, và thực hiện những phương pháp sau

1.

đây.
HRESULT __stdcall Abort(void)
Tạo dữ liệu các thành viên để giữ bất kỳ dữ liệu nào sẽ được cần thiết bởi các phương

2.

pháp Chu Ân Lai.
3.

Qua địa chỉ của GdiplusAbort descendant vào hình ảnh:: SetAbort phương pháp.

Trong thời gian nhất định thời gian rendering hoạt động (ví dụ, một cuộc gọi đến các đồ họa:: DrawImage
phương pháp), GDI + cuộc gọi của Chu Ân Lai phương pháp định kỳ. Đối với một số hoạt động của gọi là mỗi
250 mili giây; cho các hoạt động của gọi là không dựa trên một thời gian. Nếu Chu Ân Lai trở về phương pháp
S_OK, GDI + rendering tiếp tục các hoạt động. Nếu Chu Ân Lai trở về phương pháp E_ABORT, GDI + aborts
rendering các hoạt động.
Thông tin cơ cấu
Header

Tuyên bố trong GdiplusTypes.h, bao gồm gdiplus.h

Nhập thư viện

gdiplus.lib

Tối thiểu có sẵn


GDI + 1,1

Tối thiểu cho hệ điều
hành

Windows 98, Windows XP, Windows 2000, Windows
NT 4.0 SP6

Cơ cấu tổ chức GdiplusStartupInput
GdiplusStartupInput các cơ cấu tổ chức một khối của các đối số được yêu cầu bởi các GdiplusStartup chức
năng.
Cú pháp


struct GdiplusStartupInput
(
UINT32 GdiplusVersion;
DebugEventProc DebugEventCallback;
BOOL SuppressBackgroundThread;
BOOL SuppressExternalCodecs;
GdiplusStartupInput (
DebugEventProc debugEventCallback = NULL,
BOOL suppressBackgroundThread = FALSE,
BOOL suppressExternalCodecs = FALSE)
(
GdiplusVersion = 1;
DebugEventCallback = debugEventCallback;
SuppressBackgroundThread = suppressBackgroundThread;
SuppressExternalCodecs = suppressExternalCodecs;

)
);
typedef VOID (WINAPI * DebugEventProc) (DebugEventLevel cấp, thông báo char *);

Thành viên
GdiplusVersion
Xác định phiên bản của Microsoft Windows GDI +. Phải được 1.
DebugEventCallback
Trỏ đến một chức năng gọi là GDI + có thể gọi điện thoại, trên debug xây dựng, cho assertions
và cảnh báo. Giá trị mặc định là NULL.
SuppressBackgroundThread
Boolean xác định giá trị mà cho dù to suppress the GDI + nền sợi. Nếu bạn thiết lập này là
thành viên để TRUE, GdiplusStartup trả lại (trong một loạt các sản lượng tham số) là một trỏ
đến một móc và một chức năng trỏ đến một unhook chức năng. Bạn phải gọi các chức năng
thích hợp để thay thế các nền sợi. Nếu bạn không muốn phải chịu trách nhiệm kêu gọi các móc
và unhook chức năng, thiết lập này là thành viên để FALSE. Giá trị mặc định là FALSE.
SuppressExternalCodecs
Boolean giá trị mà xác định xem bạn có muốn GDI + to suppress bên ngoài hình ảnh codec.
GDI + phiên bản 1.0 không hỗ trợ hình ảnh codec bên ngoài, vì vậy tham số này là bỏ qua.


Remarks
GdiplusStartupInput trong cơ cấu cung cấp một constructor đã đưa ra GdiplusVersion thành viên đến 1 và
cho phép bạn để xác định giá trị cho các ba thành viên. Tất cả các constructor có tham số tùy chọn, do đó bạn
có thể tuyên bố một biến của loại GdiplusStartupInput mà không qua bất kỳ đối số cho constructor, và tất cả
các thành viên sẽ được khởi động thích hợp với giá trị mặc định.
Nếu bạn đã đặt ra SuppressBackgroundThread thành viên của GdiplusStartup nhập tham số cho TRUE,
bạn phải gọi điện cho móc và unhook trở về chức năng trong sản lượng tham số. Gọi những chức năng trước và
sau khi các ứng dụng chính của tin nhắn loop; có nghĩa là, một tin nhắn loop đó là hoạt động cho đời của GDI
+. Gọi the hook loop chức năng trước khi bắt đầu, và gọi điện cho unhook chức năng sau khi kết thúc vòng lặp.

Thông tin cơ cấu
Header

Tuyên bố trong Gdiplusinit.h, bao gồm gdiplus.h

Nhập thư viện

gdiplus.lib

Tối thiểu có sẵn

GDI + 1,0

Tối thiểu cho hệ điều
hành

Windows 98/Me, Windows XP, Windows 2000, Windows
NT 4.0 SP6

Cơ cấu tổ chức GdiplusStartupOutput
Các GdiplusStartup chức năng sử dụng các cơ cấu GdiplusStartupOutput để trở lại (trong một loạt các sản
lượng tham số) là một trỏ đến một móc và một chức năng trỏ đến một unhook chức năng. Nếu bạn đã đặt ra
SuppressBackgroundThread thành viên của tham số đầu vào cho TRUE, sau đó bạn có trách nhiệm kêu gọi
các chức năng để thay thế Microsoft Windows GDI + nền sợi.
Gọi cho móc và unhook chức năng trước và sau khi các ứng dụng chính của tin nhắn loop; có nghĩa là, một tin
nhắn loop đó là hoạt động cho đời của GDI +. Gọi the hook loop chức năng trước khi bắt đầu, và gọi điện cho
unhook chức năng sau khi kết thúc vòng lặp. Các tham số mã thông báo của hook chức năng nhận được một
định danh mà bạn nên để sau này qua các chức năng unhook. Nếu bạn không vượt qua đúng định danh (một
trong những trở lại bởi các chức năng hook) vào unhook chức năng, sẽ có nguồn tài nguyên ræ rằng sẽ không
được làm sạch lên cho đến khi quá trình Thoat.

Nếu bạn không muốn phải chịu trách nhiệm kêu gọi các móc và unhook chức năng, thiết lập các
SuppressBackgroundThread thành viên của tham số đầu vào (qua để GdiplusStartup) để FALSE.
Cú pháp

struct GdiplusStartupOutput (
NotificationHookProc NotificationHook;
NotificationUnhookProc NotificationUnhook;
);


Tình trạng typedef (WINAPI * NotificationHookProc) (TRONG ULONG_PTR * mã thông báo);
typedef VOID (WINAPI * NotificationUnhookProc) (ULONG_PTR mã thông báo);

Thành viên
NotificationHook
Nhận được một trỏ đến một móc chức năng.
NotificationUnhook
Nhận được một trỏ đến một unhook chức năng.
Thông tin cơ cấu
Header

Tuyên bố trong Gdiplusinit.h, bao gồm gdiplus.h

Nhập thư viện

gdiplus.lib

Tối thiểu có sẵn

GDI + 1,0


Tối thiểu cho hệ điều
hành

Windows 98/Me, Windows XP, Windows 2000, Windows
NT 4.0 SP6

Cơ cấu tổ chức HueSaturationLightnessParams
HueSaturationLightnessParams các cấu trúc chứa các thành viên mà chỉ định màu sắc, bão hòa và nhẹ nhàng
êm để điều chỉnh một Bitmap.
Bạn có thể điều chỉnh các màu sắc, saturation, và nhẹ nhàng êm một Bitmap bằng cách làm theo các bước sau.
1.

Tạo và khởi tạo một cơ cấu HueSaturationLightnessParams.

2.

Qua địa chỉ của cơ cấu HueSaturationLightnessParams đến SetParameters phương pháp của một
HueSaturationLightness đối tượng.

3.

Qua địa chỉ của HueSaturationLightness cho các đối tượng đồ họa:: DrawImage phương pháp hoặc
cho Bitmap:: ApplyEffect phương pháp.

Cú pháp
typedef struct (
Công hueLevel;
Công saturationLevel;
Công lightnessLevel;

HueSaturationLightnessParams);
Thành viên
hueLevel


Integer trong phạm vi -180 thông qua 180 xác định rằng sự thay đổi màu sắc. Một giá trị của 0
xác định không có thay đổi. Tích cực xác định giá trị đồng xoay trên bánh xe màu sắc. Phủ định
xác định giá trị đồng hồ luân phiên trên bánh xe màu sắc.
saturationLevel
Integer trong phạm vi -100 thông qua 100 xác định rằng thay đổi trong bão hòa. Một giá trị của
0 xác định không có thay đổi. Tích cực xác định giá trị gia tăng bão hòa và phủ định xác định
giá trị giảm bão hòa.
lightnessLevel
Integer trong phạm vi -100 thông qua 100 xác định rằng thay đổi trong nhẹ nhàng êm. Một giá
trị của 0 xác định không có thay đổi. Tích cực xác định giá trị gia tăng nhẹ nhàng êm phủ định
và xác định giá trị giảm nhẹ nhàng êm.
Thông tin cơ cấu
Header

Tuyên bố trong Gdipluseffects.h, bao gồm gdiplus.h

Nhập thư viện

gdiplus.lib

Tối thiểu có sẵn

GDI + 1,1

Tối thiểu cho hệ điều

hành

Windows 98, Windows XP, Windows 2000, Windows
NT 4.0 SP6

Cơ cấu tổ chức LevelsParams
LevelsParams các cấu trúc chứa các thành viên mà chỉ định để điều chỉnh ánh sáng, midtone, hoặc các khu
vực tối tăm của một Bitmap.
Bạn có thể điều chỉnh ánh sáng, midtone, hoặc các khu vực tối tăm của một Bitmap bằng cách làm theo các
bước sau.
1.

Tạo và khởi tạo một cơ cấu LevelsParams.

2.

Qua địa chỉ của cơ cấu LevelsParams đến SetParameters phương pháp của một trình độ đối tượng.

3.

Qua địa chỉ của trình độ cho các đối tượng đồ họa:: DrawImage phương pháp hoặc cho Bitmap::
ApplyEffect phương pháp.

Cú pháp
typedef struct (
Công nổi bật;
Công midtone;
Công bóng;
LevelsParams);
Thành viên

nổi bật


×