Поделиться через


Перечисление BMFORMAT (icm.h)

Значения перечисленного типа BMFORMAT используются несколькими функциями WCS для указания формата, в который находятся определенные растровые изображения.

Синтаксис

typedef enum {
  BM_x555RGB = 0x0000,
  BM_x555XYZ = 0x0101,
  BM_x555Yxy,
  BM_x555Lab,
  BM_x555G3CH,
  BM_RGBTRIPLETS = 0x0002,
  BM_BGRTRIPLETS = 0x0004,
  BM_XYZTRIPLETS = 0x0201,
  BM_YxyTRIPLETS,
  BM_LabTRIPLETS,
  BM_G3CHTRIPLETS,
  BM_5CHANNEL,
  BM_6CHANNEL,
  BM_7CHANNEL,
  BM_8CHANNEL,
  BM_GRAY,
  BM_xRGBQUADS = 0x0008,
  BM_xBGRQUADS = 0x0010,
  BM_xG3CHQUADS = 0x0304,
  BM_KYMCQUADS,
  BM_CMYKQUADS = 0x0020,
  BM_10b_RGB = 0x0009,
  BM_10b_XYZ = 0x0401,
  BM_10b_Yxy,
  BM_10b_Lab,
  BM_10b_G3CH,
  BM_NAMED_INDEX,
  BM_16b_RGB = 0x000A,
  BM_16b_XYZ = 0x0501,
  BM_16b_Yxy,
  BM_16b_Lab,
  BM_16b_G3CH,
  BM_16b_GRAY,
  BM_565RGB = 0x0001,
  BM_32b_scRGB = 0x0601,
  BM_32b_scARGB = 0x0602,
  BM_S2DOT13FIXED_scRGB = 0x0603,
  BM_S2DOT13FIXED_scARGB = 0x0604,
  BM_R10G10B10A2 = 0x0701,
  BM_R10G10B10A2_XR = 0x0702,
  BM_R16G16B16A16_FLOAT = 0x0703
} BMFORMAT;

Константы

 
BM_x555RGB
Значение: 0x0000
16 бит на пиксель. Цветовое пространство RGB. 5 бит на канал. Самый значительный бит игнорируется.
BM_x555XYZ
Значение: 0x0101
16 бит на пиксель. Цветовое пространство XYZ, независимое от устройства CIE. 5 бит на канал. Самый значительный бит игнорируется.
BM_x555Yxy
16 бит на пиксель. Цветовое пространство Yxy. 5 бит на канал. Самый значительный бит игнорируется.
BM_x555Lab
16 бит на пиксель. Цветовое пространство L*a*b. 5 бит на канал. Самый значительный бит игнорируется.
BM_x555G3CH
16 бит на пиксель. Цветовое пространство G3CH. 5 бит на канал. Самый значительный бит игнорируется.
BM_RGBTRIPLETS
Значение: 0x0002
Максимум 24 бита на пиксель. Для трех каналов, таких как красный, зеленый, синий, общий размер составляет 24 бита на пиксель. Для одноканального цвета, например серого, общий размер составляет 8 бит на пиксель.
BM_BGRTRIPLETS
Значение: 0x0004
Максимум 24 бита на пиксель. Для трех каналов, таких как красный, зеленый, синий, общий размер составляет 24 бита на пиксель. Для одноканального цвета, например серого, общий размер составляет 8 бит на пиксель.
BM_XYZTRIPLETS
Значение: 0x0201
Максимум 24 бита на пиксель. Для трех значений канала, X, Y и Z общий размер составляет 24 бита на пиксель. Для одноканальной серой шкалы общий размер составляет 8 бит на пиксель.

ПРИМЕЧАНИЕ

Функция TranslateBitmapBits не поддерживает BM_XYZTRIPLETS в качестве входных данных.

BM_YxyTRIPLETS
Максимум 24 бита на пиксель. Для трех значений канала, Y, x и y общий размер составляет 24 бита на пиксель. Для одноканальной серой шкалы общий размер составляет 8 бит на пиксель.

ПРИМЕЧАНИЕ

Функция TranslateBitmapBits не поддерживает BM_YxyTRIPLETS в качестве входных данных.

BM_LabTRIPLETS
Максимум 24 бита на пиксель. Для трех значений канала, L, a и b общий размер составляет 24 бита на пиксель. Для одноканальной серой шкалы общий размер составляет 8 бит на пиксель.
BM_G3CHTRIPLETS
Максимум 24 бита на пиксель. Для трех значений канала общий размер составляет 24 бита на пиксель. Для одноканальной серой шкалы общий размер составляет 8 бит на пиксель.
BM_5CHANNEL
40 бит на пиксель. Для каждого канала используется по 8 бит за штуку.
BM_6CHANNEL
48 бит на пиксель. Для каждого канала используется по 8 бит за штуку.
BM_7CHANNEL
56 бит на пиксель. Для каждого канала используется по 8 бит за штуку.
BM_8CHANNEL
64 бита на пиксель. Для каждого канала используется по 8 бит за штуку.
BM_GRAY
32 бита на пиксель. Используется только 8-битовое значение серого масштаба.
BM_xRGBQUADS
Значение: 0x0008
32 бита на пиксель. Для каждого канала цвета используется 8 бит. Самый значительный байт игнорируется.
BM_xBGRQUADS
Значение: 0x0010
32 бита на пиксель. Для каждого канала цвета используется 8 бит. Самый значительный байт игнорируется.
BM_xG3CHQUADS
Значение: 0x0304
32 бита на пиксель. Для каждого канала цвета используется 8 бит. Самый значительный байт игнорируется.
BM_KYMCQUADS
32 бита на пиксель. Для каждого канала цвета используется 8 бит.
BM_CMYKQUADS
Значение: 0x0020
32 бита на пиксель. Для каждого канала цвета используется 8 бит.
BM_10b_RGB
Значение: 0x0009
32 бита на пиксель. Для каждого канала цвета используется 10 бит. 2 наиболее важных бита игнорируются.
BM_10b_XYZ
Значение: 0x0401
32 бита на пиксель. Для каждого канала цвета используется 10 бит. 2 наиболее важных бита игнорируются.
BM_10b_Yxy
32 бита на пиксель. Для каждого канала цвета используется 10 бит. 2 наиболее важных бита игнорируются.
BM_10b_Lab
32 бита на пиксель. Для каждого канала цвета используется 10 бит. 2 наиболее важных бита игнорируются.
BM_10b_G3CH
32 бита на пиксель. Для каждого канала цвета используется 10 бит. 2 наиболее важных бита игнорируются.
BM_NAMED_INDEX
32 бита на пиксель. Индексы именованных цветов. Нумерация индексов начинается с 1.
BM_16b_RGB
Значение: 0x000A
48 бит на пиксель. Каждый канал использует 16 бит.
BM_16b_XYZ
Значение: 0x0501
48 бит на пиксель. Каждый канал использует 16 бит.
BM_16b_Yxy
48 бит на пиксель. Каждый канал использует 16 бит.
BM_16b_Lab
48 бит на пиксель. Каждый канал использует 16 бит.
BM_16b_G3CH
48 бит на пиксель. Каждый канал использует 16 бит.
BM_16b_GRAY
16 бит на пиксель.
BM_565RGB
Значение: 0x0001
16 бит на пиксель. 5 битов используются для красного, 6 для зеленого и 5 для синего.
BM_32b_scRGB
Значение: 0x0601
96 бит на пиксель, 32 бита на канал с плавающей запятой IEEE.
BM_32b_scARGB
Значение: 0x0602
128 бит на пиксель, 32 бита на канал с плавающей запятой IEEE.
BM_S2DOT13FIXED_scRGB
Значение: 0x0603
48 бит на пиксель, фиксированное целое число точек в диапазоне от -4 до +4 со знаком бита и 2-разрядной экспоненты и 13-разрядной мантиссы.
BM_S2DOT13FIXED_scARGB
Значение: 0x0604
64 бита на пиксель, фиксированное целое число в диапазоне от -4 до +4 со знаком бита и 2 битовой экспоненты и 13-разрядной мантиссы.
BM_R10G10B10A2
Значение: 0x0701
32 бита на пиксель. Для каждого канала цвета используется 10 бит. Два наиболее значимых бита — альфа.
BM_R10G10B10A2_XR
Значение: 0x0702
32 бита на пиксель. Для каждого канала цвета используется 10 бит. 10 бит каждого канала цвета представляют собой фиксированную точку 2,8 с смещением -0,75, что дает диапазон [-0,76 .. 1.25]. Этот диапазон соответствует [-0,5 .. 1,5] в гамма=1 пространстве. Два наиболее важных бита сохраняются для альфа-канала.

Для этого используется цветовое пространство sRGB в расширенном диапазоне (XR). Он имеет те же основные элементы RGB, белую точку и гамма, что и sRGB.
BM_R16G16B16A16_FLOAT
Значение: 0x0703
64 бита на пиксель. Каждый канал является 16-разрядным с плавающей точкой. Последнее слово WORD — альфа.

Комментарии

Таблица форматов растровых рисунков

В следующей таблице показано для каждого из форматов количество битов на пиксель, количество каналов, порядок каналов и побитовая структура каждого байта. Возможно, потребуется прокрутить вправо, чтобы увидеть все столбцы таблицы.

Формат Бит на пиксель Количество каналов Упорядочение каналов Байт 0 Байт 1 Байт 2 Байт 3 Байт 4 Байт 5 Байт 6 Байт 7
BM_GRAY 8 1 K7K6K5K4K3K2K1K0
BM_565RGB 16 3 BGR G2G1G0B4B3B2B1B0 R4R3R2R1R0G5G4G3
BM_x555RGB 16 3 BGR G2G1G0B4B3B2B1B0 xR4R3R2R1R0G4G3
BM_x555XYZ 16 3 ZYX Y2Y1Y0Z4Z3Z2Z1Z0 xX4X3X2X1X0Y4Y3
BM_x555Yxy 16 3 yxY x2x1x0y4y3y2y1y0 xY4Y3Y2Y1Y0x4x3
BM_x555Lab 16 3 Bal a2a1a0b4b3b2b1b0 xL4L3L2L1L0a4a3
BM_x555G3CH 16 3 123 xC14C13C12C11C10C24C23 C22C21C20C34C33C32C31C30
BM_16b_GRAY 16 1 K K7K6K5K4K3K2K1K0 K15K14K13K12K11K10K9K8
BM_RGBTRIPLETS 24 3 BGR B7B6B5B4B3B2B1B0 G7G6G5G4G3G2G1G0 R7R6R5R4R3R2R1R0
BM_BGRTRIPLETS 24 3 RGB R7R6R5R4R3R2R1R0 G7G6G5G4G3G2G1G0 B7B6B5B4B3B2B1B0
BM_XYZTRIPLETS 24 3 XYZ X7X6X5X4X3X2X1X0 Y7Y6Y5Y4Y3Y2Y1Y0 Z7Z6Z5Z4Z3Z2Z1Z0
BM_YxyTRIPLETS 24 3 Yxy Y7Y6Y5Y4Y3Y2Y1Y0 x7x6x5x4x3x2x1x0 y7y6y5y4y3y2y1y0
BM_LabTRIPLETS 24 3 Лаборатория L7L6L5L4L3L2L1L0 a7a6a5a4a3a2a1a0 b7b6b5b4b3b2b1b0
BM_G3CHTRIPLETS 24 3 123 C17C16C15C14C13C12C11C10 C27C26C25C24C23C22C21C20 C37C36C35C34C33C32C31C30
BM_xRGBQUADS 32 3 BGRx B7B6B5B4B3B2B1B0 G7G6G5G4G3G2G1G0 R7R6R5R4R3R2R1R0 xxxxxxxx
BM_xBGRQUADS 32 3 RGBx R7R6R5R4R3R2R1R0 G7G6G5G4G3G2G1G0 B7B6B5B4B3B2B1B0 xxxxxxxx
BM_xG3CHQUADS 32 3 123x C17C16C15C14C13C12C11C10 C27C26C25C24C23C22C21C20 C37C36C35C34C33C32C31C30 xxxxxxxx
BM_CMYKQUADS 32 4 KYMC K7K6K5K4K3K2K1K0 Y7Y6Y5Y4Y3Y2Y1Y0 M7M6M5M4M3M2M1M0 C7C6C5C4C3C2C1C0
BM_KYMCQUADS 32 4 CMYK C7C6C5C4C3C2C1C0 M7M6M5M4M3M2M1M0 Y7Y6Y5Y4Y3Y2Y1Y0 K7K6K5K4K3K2K1K0
BM_10b_RGB 32 3 BGR B7B6B5B4B3B2B1B0 G5G4G3G2G1G0B9B8 R3R2R1R0G9G8G7G6 xxR9R8R7R6R5R4
BM_10b_XYZ 32 3 ZYX Z7Z6Z5Z4Z3Z2Z1Z0 Y5Y4Y3Y2Y1Y0Z9Z8 X3X2X1X0Y9Y8Y7Y6 xxX9X8X7X6X5X4
BM_10b_Yxy 32 3 yxY y7y6y5y4y3y2y1y0 x5x4x3x2x1x0y9y8 Y3Y2Y1Y0x9x8x7x6 xxY9Y8Y7Y6Y5Y4
BM_10b_Lab 32 3 Bal b7b6b5b4b3b2b1b0 a5a4a3a2a1a0b9b8 L3L2L1L0a9a8a7a6 xxL9L8L7L6L5L4
BM_10b_G3CH 32 3 321 C37C36C35C34C33C32C31C30 C25C24C23C22C21C20C39C38 C13C12C11C10C29C28C27C26 xxC19C18C17C16C15C14
BM_NAMED_INDEX 32 n7n6n5n4n3n2n1n0 n15n14n13n12n11n10n9n8 n23n22n21n20n19n18n17n16 n31n30n29n28n27n26n25n24
BM_5CHANNEL 40 5 12345 C17C16C15C14C13C12C11C10 C27C26C25C24C23C22C21C20 C37C36C35C34C33C32C31C30 C47C46C45C44C43C42C41C40 C57C56C55C54C53C52C51C50
BM_6CHANNEL 48 6 123456 C17C16C15C14C13C12C11C10 C27C26C25C24C23C22C21C20 C37C36C35C34C33C32C31C30 C47C46C45C44C43C42C41C40 C57C56C55C54C53C52C51C50 C67C66C65C64C63C62C61C60
BM_16b_RGB 48 3 RGB R7R6R5R4R3R2R1R0 R15R14R13R12R11R10R9R8 G7G6G5G4G3G2G1G0 G15G14G13G12G11G10G9G8 B7B6B5B4B3B2B1B0 B15B14B13B12B11B10B9B8
BM_16b_XYZ 48 3 XYZ X7X6X5X4X3X2X1X0 X15X14X13X12X11X10X9X8 Y7Y6Y5Y4Y3Y2Y1Y0 Y15Y14Y13Y12Y11Y10Y9Y8 Z7Z6Z5Z4Z3Z2Z1Z0 Z15Z14Z13Z12Z11Z10Z9Z8
BM_16b_Lab 48 3 Лаборатория L7L6L5L4L3L2L1L0 L15L14L13L12L11L10L9L8 a7a6a5a4a3a2a1a0 a15a14a13a12a11a10a9a8 b7b6b5b4b3b2b1b0 b15b14b13b12b11b10b9b8
BM_16b_G3CH 48 3 321 C37C36C35C34C33C32C31C30 C315C314C313C312C311C310C39C38 C27C26C25C24C23C22C21C20 C215C214C213C212C211C210C29C28 C17C16C15C14C13C12C11C10 C115C114C113C112C111C110C19C18
BM_16b_Yxy 48 3 Yxy Y7Y6Y5Y4Y3Y2Y1Y0 Y15Y14Y13Y12Y11Y10Y9Y8 x7x6x5x4x3x2x1x0 x15x14x13x12x11x10x9x8 y7y6y5y4y3y2y1y0 y15y14y13y12y11y10y9y8
BM_7CHANNEL 56 7 1234567 C17C16C15C14C13C12C11C10 C27C26C25C24C23C22C21C20 C37C36C35C34C33C32C31C30 C47C46C45C44C43C42C41C40 C57C56C55C54C53C52C51C50 C67C66C65C64C63C62C61C60 C77C76C75C74C73C72C71C70
BM_8CHANNEL 64 8 12345678 C17C16C15C14C13C12C11C10 C27C26C25C24C23C22C21C20 C37C36C35C34C33C32C31C30 C47C46C45C44C43C42C41C40 C57C56C55C54C53C52C51C50 C67C66C65C64C63C62C61C60 C77C76C75C74C73C72C71C70 C87C86C85C84C83C82C81C80
BM_32b_scRGB 96 3 BGR
BM_32b_scARGB 128 3 BGRA
BM_S2DOT13FIXED_scRGB 48 3 BGR
BM_S2DOT13FIXED_scARGB 64 3 BGRA
BM_R10G10B10A2 32 3 ABGR A7A6B5B4B3B2B1B0 B7B6B5B4G3G2G1G0 G7G6G5G4G3G2R1R0 R7R6R5R4R3R2R1R0
BM_R10G10B10A2_XR 32 3 ABGR A7A6B5B4B3B2B1B0 B7B6B5B4G3G2G1G0 G7G6G5G4G3G2R1R0 R7R6R5R4R3R2R1R0
BM_R16G16B16A16_FLOAT 64 3 RGBA R7R6R5R4R3R2R1R0 R7R6R5R4R3R2R1R0 G7G6G5G4G3G2G1G0 G7G6G5G4G3G2G1G0 B7B6B5B4B3B2B1B0 B7B6B5B4B3B2B1B0 A7A6A5A4A3A2A1A0 A7A6A5A4A3A2A1A0

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть icm.h