Tìm hiểu cấu trúc GDI trong window
Trang 16 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
Trang 21 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
Để 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
Trang 3Gdiplus.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
Trang 4Khi 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
Trang 5đồ 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
Trang 6cá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
Trang 7JPEG 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ị
Trang 8Từ 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)
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);
Trang 9Ví 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);
Trang 10myGraphics = đồ 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ơ đồ
Trang 11 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 GDI-
Mứ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:
Trang 12Cơ 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:: DrawImagephương pháp hoặc cho Bitmap::
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
Trang 13Nhậ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
3 Qua địa chỉ của BrightnessContrast cho các đối tượng đồ họa:: DrawImagephương pháp hoặc cho Bitmap:: ApplyEffect phương pháp
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
Trang 14Cơ 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
3 Qua địa chỉ của ColorBalance cho các đối tượng đồ họa:: DrawImagephương pháp hoặc cho Bitmap:: ApplyEffect phương pháp
100, số tiền màu đỏ trong hình ảnh và giảm số lượng Cyan 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
Trang 15Nhậ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
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