Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Większość struktur używanych przez usługę WCS 1.0 jest bardzo prosta i wymaga niewielkiego wyjaśnienia. Są one udokumentowane w sekcji referencyjnej WCS 1.0 zatytułowanej Structures.
Wyjątki to struktura COLORMATCHSETUPW używana przez funkcję SetupColorMatchingW oraz następujące struktury systemu Windows zdefiniowane w pliku Wingdi.h:
Następujące tematy zostały omówione na większej długości:
- Struktury nagłówków mapy bitowej systemu Windows
- różnice między nagłówkami V4 i V5
- Bitmap.exe: narzędzie Command-Line do konwertowania nagłówków map bitowych
Struktury nagłówków mapy bitowej systemu Windows
WCS 1.0 umożliwia powiązywanie lub osadzanie profilów kolorów ICC w niezależnych od urządzenia mapach bitowych (DIB). Dzięki temu kolory DIB można scharakteryzować dokładniej niż było to możliwe przy użyciu usługi WCS w systemie Windows 95. BITMAPV5HEADER , nowa struktura nagłówka mapy bitowej, została zdefiniowana w pliku Wingdi.h w wydaniu systemu Windows 98. W celach programistycznych jest on również uwzględniony w pliku Icm.h wraz z tym odwołaniem programisty. Struktura BITMAPV5HEADER jest następująca:
typedef struct {
DWORD bV5Size;
LONG bV5Width;
LONG bV5Height;
WORD bV5Planes;
WORD bV5BitCount;
DWORD bV5Compression;
DWORD bV5SizeImage;
LONG bV5XPelsPerMeter;
LONG bV5YPelsPerMeter;
DWORD bV5ClrUsed;
DWORD bV5ClrImportant;
DWORD bV5RedMask;
DWORD bV5GreenMask;
DWORD bV5BlueMask;
DWORD bV5AlphaMask;
DWORD bV5CSType;
CIEXYZTRIPLE bV5Endpoints;
DWORD bV5GammaRed;
DWORD bV5GammaGreen;
DWORD bV5GammaBlue;
DWORD bV5Intent; // Rendering intent for bitmap
DWORD bV5ProfileData; // Offset to profile data
DWORD bV5ProfileSize; // Size of embedded profile data
DWORD bV5Reserved; // Should be zero
} BITMAPV5HEADER, FAR *LPBITMAPV5HEADER, *PBITMAPV5HEADER;
Element członkowski bV5CSType może mieć wartości PROFILE_EMBEDDED lub PROFILE_LINKED, aby określić, czy profil jest osadzony, czy połączony z DIB. Człon bV5ProfileData jest przesunięciem wyrażonym w bajtach od początku struktury BITMAPV5HEADER do początku danych profilu. Jeśli profil jest osadzony, dane profilu są faktycznym profilem, a jeśli są połączone, dane profilu są nazwą pliku zakończoną znakiem null. Nie może to być ciąg Unicode. Musi składać się wyłącznie z znaków z zestawu znaków systemu Windows (strona kodowa 1252).
Gdy DIB jest ładowany do pamięci, dane profilu (jeśli istnieją) powinny następować po tabeli kolorów, a bV5ProfileData powinno określać przesunięcie danych profilu od początku struktury BITMAPV5HEADER. Wartość tego składnika będzie teraz inna, ponieważ bity mapy bitowej nie podążają za tabelą kolorów w pamięci. Aplikacje powinny modyfikować element bV5ProfileData po załadowaniu DIB do pamięci.
W przypadku spakowanych plików DIB dane profilu powinny następować po bitach mapy bitowej podobnie jak w formacie pliku. Element bV5ProfileData powinien nadal zawierać przesunięcie danych profilu od początku struktury BITMAPV5HEADER.
Aplikacje powinny uzyskiwać dostęp do danych profilu tylko wtedy, gdy bV5Size == sizeof ( BITMAPV5HEADER ) ANDbV5CSType jest PROFILE_EMBEDDED lub PROFILE_LINKED.
Jeśli profil jest połączony, ścieżka profilu może być dowolną w pełni kwalifikowaną nazwą (w tym ścieżką sieciową), którą można otworzyć przy użyciu funkcji Win32 CreateFile.
Różnice między nagłówkami V4 i V5
Podczas pracy z nową strukturą mapy bitowej warto rozpoznać różnice w sposobie konfigurowania struktur BITMAPV4HEADER i BITMAPV5HEADER:
| Nagłówek V4 | Znaczenie |
|---|---|
| bV4CSType | LCS_CALIBRATED_RGB. Ta wartość oznacza, że punkty końcowe i gamma są podane w odpowiednich polach. Fałszywe wartości powodują problemy. |
| bV4CSType | LCS_sRGB. Ta wartość oznacza, że mapa bitowa znajduje się w przestrzeni kolorów SRGB (gammas i punkty końcowe ignorowane). |
| bV4CSType | LCS_PRZESTRZEŃ KOLORÓW WINDOWS. Ta wartość oznacza, że mapa bitowa znajduje się w domyślnej przestrzeni kolorów systemu Windows. |
| Nagłówek V5 | Znaczenie |
|---|---|
| bV5CSType | LCS_CALIBRATED_RGB. Ta wartość oznacza, że punkty końcowe i gamma są podane w odpowiednich polach. Fałszywe wartości powodują problemy. |
| bV5CSType | LCS_sRGB. Ta wartość oznacza, że mapa bitowa znajduje się w przestrzeni kolorów SRGB (gammas i punkty końcowe ignorowane). |
| bV5CSType | PROFILE_EMBEDDED. Ta wartość oznacza, że bV5ProfileData wskazuje bufor pamięci, który zawiera profil do użycia (gammas i punkty końcowe są ignorowane). |
| bV5CSType | PROFIL_POŁĄCZONY Ta wartość oznacza, że bV5ProfileData wskazuje nazwę pliku profilu, którego należy użyć (parametry gamma i punkt końcowy są ignorowane). |
| bV5CSType | LCS_WINDOWS_COLOR_SPACE. Ta wartość oznacza, że mapa bitowa znajduje się w domyślnej przestrzeni kolorów systemu Windows. |
Aby przekonwertować starsze mapy bitowe do i z nowej struktury BITMAPV5HEADER, w dokumentacji programisty WCS 1.0 znajduje się plik narzędziowy do konwersji linii poleceń o nazwie Bitmap.exe.
BitMap.exe: narzędzie Command-Line do konwertowania nagłówków mapy bitowej
Bitmap.exe to narzędzie wiersza polecenia znajdujące się w folderze \Bin w folderze instalacyjnym, który określiłeś. Modyfikuje nagłówki map bitowych systemu Windows, umożliwiając konwertowanie istniejących map bitowych z BITMAPINFOHEADER i BITMAPV4HEADER struktur nagłówków do nowszej struktury BITMAPV5HEADER i z powrotem. Składnia wiersza polecenia jest następująca:
BITMAP [/d] [/1|4|5] [/s] [/f]
filename
Przełączniki wiersza polecenia mają następujące efekty.
| Przełącznik | Znaczenie |
|---|---|
| /d | Wartości domyślne są automatycznie wprowadzane w przekonwertowanych nagłówkach. |
| /1 | Konwertuj określone mapy bitowe na BITMAPINFOHEADER |
| /4 | Konwertowanie określonych map bitowych na BITMAPV4HEADER |
| /5 | Konwertowanie określonych map bitowych na BITMAPV5HEADER |
| /f | Wymusza konwersję, nawet jeśli mapa bitowa ma już właściwy nagłówek |
| /s | Konwertuje mapy bitowe w określonym folderze i wszystkich podkatalogach w nim |