네이티브 픽셀 형식 개요

이 항목에서는 WIC(Windows 이미징 구성 요소)에서 제공하는 픽셀 형식을 소개합니다.

픽셀 형식은 비트맵에 있는 각 픽셀의 메모리 레이아웃을 설명합니다. 이 메모리 레이아웃은 숫자 형식 및 색 채널 조직을 지정하여 비트맵의 이미지 데이터를 인코딩하는 방법을 설명합니다. WIC는 여러 색 채널 조직 구성표에 대해 여러 숫자 형식을 지원하여 광범위한 픽셀 형식을 제공합니다.

비트 수준

비트 깊이각 색 채널을 인코딩하는 데 사용되는 비트 수입니다. 현재 대부분의 디지털 이미지는 8의 비트 깊이를 사용합니다. 즉, 픽셀의 각 색 채널이 8비트로 표시되어 채널당 2(256) 고유 값을 제공합니다. 깊이가 8개이고 색상 채널이 3개인 이미지(예: 빨강, 녹색, 파랑)는 픽셀당 24비트(bpp)를 사용하며, 픽셀당 2gb(16,777,216)의 다양한 색을 제공합니다.

색 해상도를 높이기 위해 16 또는 32의 비트 깊이를 사용할 수 있습니다. 이렇게 하면 각 색 채널에 픽셀당 더 많은 메모리를 제공하는 2개(65,536) 또는 2개의 고유 값이 제공됩니다.

일부 형식에서 비트 깊이는 8의 배수가 아닙니다. 픽셀의 색 채널이 바이트 경계에 맞춰지지 않기 때문에 이러한 형식을 압축된 형식이라고 합니다. 예를 들어 비트 깊이가 5이면 3개의 색 채널을 16비트에 저장할 수 있습니다(1비트 패딩 포함). 압축된 형식은 메모리 또는 처리 능력이 제한되는 경우에 유용합니다.

숫자 인코딩

오늘날 대부분의 디지털 이미지에서는 부호 없는 바이트 및 부호 없는 짧은 정수가 각 색 채널의 숫자 범위를 설명하는 데 사용됩니다. 최소값(0)은 단일 색 채널에서 강도가 0이고 모든 색 채널이 0이면 검은색이 구현됩니다. 마찬가지로, 최대값은 전체 강도를 나타내며, 모든 색 채널이 전체 강도일 때 흰색이 생성됩니다. 8의 비트 깊이에서 UINT는 색 채널당 256개의 고유 값(0 - 255)을 제공합니다. 16비트 UINT는 색 채널당 65,536개의 고유 값(0 - 65,535)을 제공합니다.

또한 WIC는 고정 소수점 및 부동 소수점 형식을 지원합니다. 이러한 형식은 각 색 채널의 전체 숫자 범위가 표시되는 범위보다 크기 때문에 더 큰 동적 범위를 지원합니다. 따라서 이미지 정보를 손실하지 않고 이미지 처리의 중간 단계에서 표시되는 범위 위 또는 아래에 색을 조정할 수 있습니다.

고정 소수점 숫자 인코딩

16비트 고정 소수점 값은 부호 비트, 2개의 정수 비트 및 13개의 소수점 비트로 해석됩니다. 이 해석을 사용하여 숫자 범위는 -4.0에서 +3.999까지입니다. 는 부호 있는 정수 값 8192(0x2000)로 표시되는 값 1.0을 사용하여 나타낼 수 있습니다.

32비트 고정 소수점 값은 s7.24: 부호 비트, 7개의 정수 비트 및 24개의 소수점 비트로 해석됩니다. 이 해석을 사용하여 숫자 범위는 -128.0에서 +127.999까지입니다. 은 부호 있는 정수 값 16777216(0x01000000)으로 표현되는 1.0 값을 사용하여 나타낼 수 있습니다.

색 채널

픽셀 형식의 색 채널은 비트맵의 이미지 데이터 내에서 각 색의 메모리 레이아웃을 정의합니다. 오늘날의 디지털 이미지에는 다양한 색 채널 구조가 있으며, WIC는 이러한 여러 가지 기능을 지원합니다.

RGB/BGR 색 모델

RGB 및 BGR 형식은 추가 색 모델의 색을 설명합니다. 이미지를 설명하는 가장 일반적인 방법은 빨강(R), 녹색(G) 및 파란색(B)을 나타내는 세 개의 개별 색 채널을 사용하는 것입니다. WIC는 RGB(빨강-녹색-파랑) 또는 BGR(파랑-녹색-빨강) 순서로 이러한 세 채널을 지원합니다. 각 색 채널이 순차 비트 스트림 내에 나타나는 순서입니다. 예를 들어 GUID_WICPixelFormat32bppRGB 형식에서는 각 픽셀의 너비가 32비트입니다. 빨간색 채널은 메모리에서 첫 번째(가장 중요하지 않은) 바이트이고, 그 다음에 녹색, 파랑이 그 뒤를 잇습니다. 반대로 GUID_WICPixelFormat32bppBGR 형식에서는 색 채널이 반대 순서로 표시됩니다. WIC는 GUID_WICPixelFormat16bppBGR555 같은 특수한 압축 비트 형식을 포함하여 다양한 RGB/BGR 형식을 지원합니다.

참고 항목

특수 BGR 압축 비트 형식의 색 채널은 일반적인 픽셀 형식의 색 채널과 같이 8의 배수가 아닙니다. 즉, 채널 값이 바이트 정렬되지 않습니다. 압축된 비트 색 채널을 읽을 때는 주의해야 합니다.

WIC는 RGB 및 BGR 형식 외에도 알파(A) 채널을 지원하는 RGB 및 BGR 픽셀 형식도 제공합니다. 알파 채널은 픽셀에 대한 불투명도 데이터를 제공합니다. 알파 채널이 추가된 형식의 경우 알파 채널은 일반적으로 색 채널 순서대로 마지막에 제공됩니다. 예를 들어 픽셀 형식 GUID_WICPixelFormat32bppBGRA 바이트 순서는 파랑, 녹색, 빨간색, 알파 채널이 뒤따릅니다.

WIC는 사전 곱하기(P) 알파 RGB 픽셀 형식도 지원합니다. 일반적인 RGBA 픽셀 형식에서 빨간색, 녹색 및 파란색 값은 이미지의 실제 색 값입니다. 표준 RGBA 형식으로 복합 이미지를 만들려면 전경 이미지의 알파 값을 배경 이미지의 색에 추가하기 전에 빨간색, 녹색 및 파란색 채널을 각각 곱해야 합니다. 미리 곱한 알파 RGB 픽셀 형식에서 각 색 채널은 이미 알파 값을 곱했습니다. 이렇게 하면 알파 채널 데이터를 사용하여 이미지 컴퍼지션의 보다 효율적인 방법을 제공합니다. PRGBA/PBGRA 픽셀 형식으로 각 채널의 실제 색 값을 검색하려면 색 값을 알파 값으로 나누어 알파 채널 곱셈을 반전해야 합니다.

CMYK 색 모델

CMYK는 인쇄에 사용되는 빼기 색 모델입니다. CMYK 모델에서 생성된 색은 흡수되지 않고 반사되는 빛에 의해 생성됩니다. CMYK는 시안(C), 마젠타(M), 노란색(Y) 및 검정(K)의 4개 채널 모델입니다. 네 가지 색 채널이 모두 최대값이면 결과는 검은색입니다. RGB/BGR 색 모델과 마찬가지로 순차 비트 스트림 내의 바이트 순서는 픽셀 형식의 이름으로 지정됩니다. 예를 들어 픽셀 형식 GUID_WICPixelFormat32bppCMYK 각 픽셀은 32비트로 구성됩니다. 첫 번째 바이트에는 시안 값이 포함되고, 그 뒤에 마젠타, 노랑, 검정이 차례로 포함됩니다. WIC는 픽셀당 32비트 및 64비트(bpp)로 CMYK에 대한 픽셀 형식을 제공합니다.

WIC는 표준 CMYK 색 모델 외에도 CMYK에 알파를 제공합니다. 이를 통해 CMYK 이미지는 RGB/BGR 색 모델과 유사한 알파 혼합 데이터를 가질 수 있습니다. 알파 채널은 비트맵의 순차 비트 스트림에서 검은색 바로 뒤의 위치에 있습니다.

n 채널 색 모델

WIC는 유연성을 위해 미리 정의된 채널 순서가 없는 픽셀 형식도 제공합니다. WIC는 8과 16의 비트 깊이에서 연속 이미지 데이터의 3~8개 채널을 지원하는 픽셀 형식을 제공합니다. RGB/BGR 및 CMYK 픽셀 형식과 달리 n 채널 형식은 채널 순서를 지정하지 않고 사용 가능한 색 채널 수를 지정합니다. 예를 들어 픽셀 형식 GUID_WICPixelFormat32bpp4Channels 각 픽셀은 32비트로 구성되며 각 4개 채널은 단일 바이트를 차지합니다.

WIC는 알파가 있는 n 채널에 대한 픽셀 형식도 제공합니다. 이렇게 하면 N 채널 이미지에 RGB/BGR 및 CMYK 색 모델과 유사한 알파 혼합 데이터가 있을 수 있습니다. 알파 채널은 비트맵의 순차적 비트 스트림에서 마지막 색 채널 바로 다음 위치에 있습니다.

인덱싱 및 회색조 색 모델

인덱싱된 형식은 색상표라고 하는 색 테이블을 사용합니다. 색상표는 픽셀 데이터 외부에 저장되거나 암시적으로 정의됩니다. 이미지의 각 픽셀 값은 색상표의 인덱스입니다. 인덱싱된 형식을 사용하면 픽셀당 비트 수가 색상표의 항목 수와 직접 관련됩니다. 이렇게 하면 이미지를 나타내는 데 필요한 데이터의 양이 크게 줄어들지만 이미지에 사용할 수 있는 색의 수도 제한됩니다. WIC는 1, 2, 4 또는 8 bpp의 인덱싱된 형식을 지원합니다.

단색(회색조) 형식의 경우 WIC는 픽셀당 1, 2, 4, 8, 16 및 32비트만 지원합니다. 1, 8, 16 및 32 비트 깊이의 경우 색 데이터는 단일 채널에 저장됩니다. 비트 깊이 2 또는 4의 경우 픽셀은 회색조 색상표로 인덱스입니다.

Y'CbCr 색 모델

WIC는 JPEG JFIF Y'CbCr 색 모델에 대한 지원을 추가합니다. Y'CbCr은 색을 루마 구성 요소(Y')와 두 개의 크로마 구성 요소(Cb 및 Cr)로 구분합니다. 대부분의 JPEG 파일은 기본적으로 Y'CbCr 색 모델을 사용하여 이미지 데이터를 저장합니다.

인간의 시각 시스템은 윤마보다 크로마의 변화에 덜 민감하며, Y'CbCr 형식은 윤마에 상대적으로 저장된 크로마 데이터의 양을 줄임으로써 이 감소된 민감도를 활용할 수 있습니다. 크로마와 루마를 별도의 평면에 저장하고 각 구성 요소 평면을 다른 해상도로 스케일링하여 이 작업을 수행합니다. 이 사례를 크로마 하위 샘플링이라고 합니다.

크로마 및 루마 데이터는 별도로 저장되고 해상도가 다를 수 있으므로 WIC는 별도의 윤활유 및 크로마 픽셀 형식을 정의합니다. WIC는 채널당 8비트인 데이터를 지원합니다.

WIC 픽셀 형식

WIC의 픽셀 형식은 IHV와의 충돌을 방지하기 위해 GUID를 사용하여 정의됩니다. WIC는 네이티브 픽셀 형식의 GUID를 참조하는 친숙한 이름을 제공합니다. WIC 픽셀 형식에 대한 명명 규칙은 다음과 같습니다.

[GUID_WICPixelFormat] [픽셀당 비트 수] [채널 순서] [스토리지 유형]

구성 요소 서식 지정 설명
GUID_WICPixelFormat 모든 WIC 픽셀 형식에 대한 설명 ID입니다. 모든 WIC 픽셀에 대한 친숙한 이름은 이 문자열로 시작합니다.
픽셀당 비트 수 픽셀 형식에 사용되는 픽셀당 비트 수(bpp)입니다.
채널 순서 형식에 대한 각 채널의 색 채널 모델 및 순서입니다.
스토리지 형식 픽셀 형식에 사용되는 숫자 인코딩입니다. 기본 인코딩은 부호 없는 정수입니다. 색 모델 정보를 따르는 것이 없으면 부호 없는 정수(UINT)가 암시됩니다. FixedPoint 및 Float는 각각 고정 소수점 및 부동 소수점 인코딩을 사용하는 픽셀 형식을 식별하는 데 사용됩니다.

참고 항목

n 채널 형식의 경우 [채널 순서]는 색 순서를 지정하지 않고 사용 가능한 채널 수를 지정합니다. 예를 들어 GUID_WICPixelFormat24bpp3Channels "3Channels"가 [채널 순서] 항목이지만 순서가 아닌 채널 수만 나타내는 3개의 색 채널을 제공합니다.

예를 들어 이름 GUID_WICPixelFormat24bppRGB 픽셀 형식은 픽셀당 24비트 및 RGB 색 모델을 사용한다는 의미입니다. 이름은 스토리지 형식을 명시적으로 식별하지 않으므로 부호 없는 정수가 암시됩니다.

WIC는 여러 픽셀 형식을 지원합니다. 다음 표에서는 비트 깊이, 픽셀당 비트 및 숫자 인코딩과 같은 추가 정보를 제공하면서 비슷한 픽셀 형식을 색 구조별로 그룹화합니다. 각 테이블에는 다음 정보가 포함되어 있습니다.

  • 친숙한 이름입니다. 픽셀 형식의 이름입니다.
  • 채널 수입니다. 색 채널의 수입니다.
  • 채널당 비트 수입니다. 채널당 비트 수(비트 깊이)입니다.
  • 픽셀당 비트 수입니다. 패딩 비트를 포함하여 픽셀당 비트 수입니다.
  • 스토리지 유형입니다. 이미지 데이터의 숫자 인코딩입니다. 이 값은 부호 없는 정수(UINT), 고정 소수점 숫자(FixedPoint) 또는 부동 소수점 숫자(Float)일 수 있습니다.

참고 항목

명확성을 위해 이 문서는 친숙한 이름으로만 픽셀 형식을 참조합니다. 픽셀 형식의 실제 16진수 값은 wincodec.h/idl 파일에서 찾을 수 있습니다.

정의되지 않은 픽셀 형식

다음 목록에서는 픽셀 형식이 정의되지 않거나 이미지 작업에 중요하지 않은 경우에 사용되는 제네릭 픽셀 형식을 보여 줍니다.

  • GUID_WICPixelFormatUndefined
  • GUID_WICPixelFormatDontCare

인덱싱된 픽셀 형식

다음 표에서는 WIC에서 제공하는 인덱싱된 픽셀 형식을 나열합니다. 이러한 형식에서 각 픽셀의 값은 색상표의 인덱스입니다.

이름 채널 수 픽셀당 비트 수 저장소 유형
GUID_WICPixelFormat1bppIndexed 1 1 UINT
GUID_WICPixelFormat2bppIndexed 1 2 UINT
GUID_WICPixelFormat4bppIndexed 1 4 UINT
GUID_WICPixelFormat8bppIndexed 1 8 UINT

압축된 비트 픽셀 형식

다음 표에서는 WIC에서 제공하는 압축된 비트 형식을 나열합니다. 이러한 형식에서 색 채널 데이터는 바이트 정렬되지 않습니다.

이름 채널 수 채널당 비트 수 픽셀당 비트 수 저장소 유형
GUID_WICPixelFormat16bppBGR555 3 5 16 UINT
GUID_WICPixelFormat16bppBGR565 3 5(B)/6(G)/5(R) 16 UINT
GUID_WICPixelFormat16bppBGRA555 4 5(B)/5(G)/5(R)/1(A) 16 UINT
GUID_WICPixelFormat32bppBGR101010 3 10 32 UINT
GUID_WICPixelFormat32bppRGBA1010102 4 10(R)/10(G)/10(B)/2(A) 32 UINT
GUID_WICPixelFormat32bppRGBA1010102XR 4 10(R)/10(G)/10(B)/2(A) 32 UINT
GUID_WICPixelFormat32bppR10G10B10A2 4 10(R)/10(G)/10(B)/2(A) 32 UINT
GUID_WICPixelFormat32bppR10G10B10A2HDR10 4 10(R)/10(G)/10(B)/2(A) 32 UINT

GUID_WICPixelFormat32bppBGR101010 및 GUID_WICPixelFormat32bppRGBA1010102 형식의 경우 빨간색 채널은 가장 중요한 비트에 저장됩니다. GUID_WICPixelFormat32bppR10G10B10A2 및 GUID_WICPixelFormat32bppR10G10B10A2HDR10 형식의 경우 빨간색 채널은 DXGI_FORMAT_R10G10B10A2_UNORM 레이아웃과 동일한 가장 중요한 비트에 정의됩니다.

GUID_WICPixelFormat32bppR10G10B10A2HDR10 형식은 HDR10(BT.2020 색 공간 및 SMPTE ST.2084 EOTF)의 10비트 픽셀 형식입니다.

회색조 픽셀 형식

다음 표에서는 WIC에서 제공하는 회색조 형식을 나열합니다. 이러한 형식에서 색 데이터는 회색 음영을 나타냅니다.

이름 채널 수 채널당 비트 수 픽셀당 비트 수 저장소 유형
GUID_WICPixelFormatBlackWhite 1 1 1 UINT
GUID_WICPixelFormat2bppGray 1 2 2 UINT
GUID_WICPixelFormat4bppGray 1 4 4 UINT
GUID_WICPixelFormat8bppGray 1 8 8 UINT
GUID_WICPixelFormat16bppGray 1 16 16 UINT
GUID_WICPixelFormat16bppGrayFixedPoint 1 16 16 FixedPoint
GUID_WICPixelFormat16bppGrayHalf 1 16 16 Float
GUID_WICPixelFormat32bppGrayFloat 1 32 32 Float
GUID_WICPixelFormat32bppGrayFixedPoint 1 32 32 FixedPoint

RGB/BGR 픽셀 형식

다음 표에서는 WIC에서 제공하는 RGB/BGR 형식을 나열합니다. 이러한 형식은 기본 색 데이터를 빨강(R), 녹색(G) 및 파란색(B) 채널로 구분합니다. 일부 형식의 불투명도 정보에 대한 추가 알파(A) 채널이 제공됩니다.

이름 채널 수 채널당 비트 수 픽셀당 비트 수 저장소 유형
GUID_WICPixelFormat24bppRGB 3 8 24 UINT
GUID_WICPixelFormat24bppBGR 3 8 24 UINT
GUID_WICPixelFormat32bppBGR 3 8 32 UINT
GUID_WICPixelFormat32bppRGBA 4 8 32 UINT
GUID_WICPixelFormat32bppBGRA 4 8 32 UINT
GUID_WICPixelFormat32bppRGBE* 4 8 32 Float
GUID_WICPixelFormat32bppPRGBA 4 8 32 UINT
GUID_WICPixelFormat32bppPBGRA 4 8 32 UINT
GUID_WICPixelFormat48bppRGB 3 16 48 UINT
GUID_WICPixelFormat48bppBGR 3 16 48 UINT
GUID_WICPixelFormat48bppRGBFixedPoint 3 16 48 고정
GUID_WICPixelFormat48bppBGRFixedPoint 3 16 48 고정
GUID_WICPixelFormat48bppRGBHalf 3 16 48 Float
GUID_WICPixelFormat64bppRGBA 4 16 64 UINT
GUID_WICPixelFormat64bppBGRA 4 16 64 UINT
GUID_WICPixelFormat64bppPRGBA 4 16 64 UINT
GUID_WICPixelFormat64bppPBGRA 4 16 64 UINT
GUID_WICPixelFormat64bppRGBFixedPoint 3 16 64 고정
GUID_WICPixelFormat64bppRGBAFixedPoint 4 16 64 고정
GUID_WICPixelFormat64bppBGRAFixedPoint 4 16 64 고정
GUID_WICPixelFormat64bppRGBHalf 3 16 64 Float
GUID_WICPixelFormat64bppRGBAHalf 4 16 64 Float
GUID_WICPixelFormat96bppRGBFixedPoint 3 32 96 고정
GUID_WICPixelFormat128bppRGBFloat 3 32 128 Float
GUID_WICPixelFormat128bppRGBAFloat 4 32 128 Float
GUID_WICPixelFormat128bppPRGBAFloat 4 32 128 Float
GUID_WICPixelFormat128bppRGBFixedPoint 3 32 128 고정
GUID_WICPixelFormat128bppRGBAFixedPoint 4 32 128 고정

참고 항목

*GUID_WICPixelFormat32bppRGBE 형식은 16비트 부동 소수점 값 3개를 4바이트 단위로 인코딩합니다. R, G 및 B 채널에 대한 부호 없는 8비트 가수 3개와 공유 8비트 지수 이 형식은 더 작은 픽셀 표현으로 16비트 부동 소수점 정밀도를 제공합니다.

Windows 8 및 Windows 7용 플랫폼 업데이트부터 WIC는 여기에 나와 있는 표에 표시된 추가 형식을 제공합니다.

이름 채널 수 채널당 비트 수 픽셀당 비트 수 저장소 유형
GUID_WICPixelFormat32bppRGB 3 8 32 UINT
GUID_WICPixelFormat64bppRGB 3 16 64 UINT
GUID_WICPixelFormat96bppRGBFloat 3 32 96 FLOAT
GUID_WICPixelFormat64bppPRGBAHalf 4 16 64 FLOAT

CMYK 픽셀 형식

다음 표에서는 WIC에서 제공하는 CMYK 형식을 나열합니다. 이러한 형식은 기본 색 데이터를 시안(C), 마젠타(M), 노란색(Y) 및 검은색(K) 채널로 구분합니다.

이름 채널 수 채널당 비트 수 픽셀당 비트 수 저장소 유형
GUID_WICPixelFormat32bppCMYK 4 8 32 UINT
GUID_WICPixelFormat64bppCMYK 4 16 64 UINT
GUID_WICPixelFormat40bppCMYKAlpha 5 8 40 UINT
GUID_WICPixelFormat80bppCMYKAlpha 5 16 80 UINT

n 채널 픽셀 형식

다음 표에서는 WIC에서 제공하는 n 채널 형식을 나열합니다. 이러한 형식은 이미지 데이터를 저장할 수 있는 정의되지 않은 여러 색 채널을 제공합니다.

이름 채널 수 채널당 비트 수 픽셀당 비트 수 저장소 유형
GUID_WICPixelFormat24bpp3Channels 3 8 24 UINT
GUID_WICPixelFormat48bpp3Channels 3 16 48 UINT
GUID_WICPixelFormat32bpp3ChannelsAlpha 4 8 32 UINT
GUID_WICPixelFormat64bpp3ChannelsAlpha 4 16 64 UINT
GUID_WICPixelFormat32bpp4Channels 4 8 32 UINT
GUID_WICPixelFormat64bpp4Channels 4 16 64 UINT
GUID_WICPixelFormat40bpp4ChannelsAlpha 5 8 40 UINT
GUID_WICPixelFormat80bpp4ChannelsAlpha 5 16 80 UINT
GUID_WICPixelFormat40bpp5Channels 5 8 40 UINT
GUID_WICPixelFormat80bpp5Channels 5 16 80 UINT
GUID_WICPixelFormat48bpp5ChannelsAlpha 6 8 48 UINT
GUID_WICPixelFormat96bpp5ChannelsAlpha 6 16 96 UINT
GUID_WICPixelFormat48bpp6Channels 6 8 48 UINT
GUID_WICPixelFormat96bpp6Channels 6 16 96 UINT
GUID_WICPixelFormat56bpp6ChannelsAlpha 7 8 56 UINT
GUID_WICPixelFormat112bpp6ChannelsAlpha 7 16 112 UINT
GUID_WICPixelFormat56bpp7Channels 7 8 56 UINT
GUID_WICPixelFormat112bpp7Channels 7 16 112 UINT
GUID_WICPixelFormat64bpp7ChannelsAlpha 8 8 64 UINT
GUID_WICPixelFormat128bpp7ChannelsAlpha 8 16 128 UINT
GUID_WICPixelFormat64bpp8Channels 8 8 64 UINT
GUID_WICPixelFormat128bpp8Channels 8 16 128 UINT
GUID_WICPixelFormat72bpp8ChannelsAlpha 9 8 72 UINT
GUID_WICPixelFormat144bpp8ChannelsAlpha 9 16 144 UINT

알파 전용 픽셀 형식

다음 표에서는 WIC에서 제공하는 알파 전용 형식을 나열합니다. 이 형식에는 알파 정보만 포함됩니다.

이름 채널 수 채널당 비트 수 픽셀당 비트 수 저장소 유형
GUID_WICPixelFormat8bppAlpha 1 8 32 UINT

Y'CbCr 픽셀 형식

다음 표에서는 WIC에서 제공하는 Y'CbCr 형식을 나열합니다. 이러한 형식은 기본 색 데이터를 루마(Y), 파란색 크로마 차이(Cb) 및 빨간색 초마 차이(Cr)로 구분합니다. 이러한 형식은 JPEG JFIF Y'CbCr 픽셀 데이터를 저장하도록 설계되었습니다.

이름 채널 수 픽셀당 비트 수 저장소 유형
GUID_WICPixelFormat8bppY 1 8 UINT
GUID_WICPixelFormat8bppCb 1 8 UINT
GUID_WICPixelFormat8bppCr 1 8 UINT
GUID_WICPixelFormat16bppCbCr 2 16 UINT

색 공간

픽셀 형식 자체에는 색 공간이 없습니다. 일반적으로 색 공간은 비트맵의 컨텍스트에 따라 달라지는 픽셀 값의 의미 체계 해석입니다. 일부 이미지는 이미지의 색 공간을 정의하는 색 컨텍스트를 식별합니다. 색 컨텍스트가 없는 경우에만 색 공간을 유추해야 합니다.

색 컨텍스트 정보는 WIC용 IWICColorContext 인터페이스에 의해 정의됩니다. 이미지 프레임에 대한 색 컨텍스트 정보를 검색하려면 GetColorContext 메서드를 사용합니다.

이미지에 대한 색 공간 정보가 없는 경우 색 공간 유추의 일반적인 규칙은 UINT RGB 및 회색조 형식이 표준 RGB 색 공간(sRGB)을 사용하는 반면 고정 소수점 및 부동 소수점 RGB 및 회색조 형식은 확장된 RGB 색 공간(scRGB)을 사용하는 것입니다. CMYK 색 모델은 RWOP 색 공간을 사용합니다.

네이티브 이미지 형식

제공된 각 Windows WIC 코덱은 WIC 픽셀 형식의 하위 집합을 지원합니다. 각 코덱에 대해 지원되는 디코딩 형식은 지원되는 인코딩 형식과 다를 수 있습니다.

이미지를 디코딩할 때 데이터가 디코더에서 지원되지 않는 픽셀 형식으로 고유하게 저장되면 지원되는 형식으로 변환됩니다. 출력 픽셀 형식을 확인하려면 IWICBitmapFrameDecode::GetPixelFormat을 호출 합니다.

이미지를 인코딩할 때 IWICBitmapFrameEncode::SetPixelFormat을 사용하여 인코더가 특정 픽셀 형식을 사용하도록 요청합니다. 인코더는 요청된 것과 다를 수 있는 지원되는 가장 가까운 픽셀 형식을 반환합니다.

다음 표에서는 Windows 제공 WIC 코덱 각각에서 지원하는 픽셀 형식을 보여 줍니다.

BMP 네이티브 코덱

픽셀 형식 디코더 인코더 픽셀 형식
GUID_WICPixelFormat1bppIndexed GUID_WICPixelFormat1bppIndexed
GUID_WICPixelFormat4bppIndexed GUID_WICPixelFormat4bppIndexed
GUID_WICPixelFormat8bppIndexed GUID_WICPixelFormat8bppIndexed
GUID_WICPixelFormat16bppBGR555 GUID_WICPixelFormat16bppBGR555
GUID_WICPixelFormat16bppBGR565 GUID_WICPixelFormat16bppBGR565
GUID_WICPixelFormat24bppBGR GUID_WICPixelFormat24bppBGR
GUID_WICPixelFormat32bppBGR GUID_WICPixelFormat32bppBGR
GUID_WICPixelFormat32bppBGRA* GUID_WICPixelFormat32bppBGRA*
GUID_WICPixelFormat64bppRGBAFixedPoint GUID_WICPixelFormat32bppPBGRA
GUID_WICPixelFormat64bppRGBAFixedPoint
GUID_WICPixelFormat64bppBGRAFixedPoint

참고 항목

GUID_WICPixelFormat32bppBGRA Windows 8 및 Windows 7용 플랫폼 업데이트 이상에서 지원됩니다.

  • 이 형식으로 인코딩하려면 EnableV5Header32bppBGRA 인코더 옵션을 사용합니다. BMP는 BITMAPV5HEADER 헤더로 작성됩니다.
  • 파일에 BITMAPV5HEADER 있으면 GUID_WICPixelFormat32bppBGRA 디코딩됩니다.

GIF 네이티브 코덱

픽셀 형식 디코더 인코더 픽셀 형식
GUID_WICPixelFormat8bppIndexed GUID_WICPixelFormat8bppIndexed

ICO 네이티브 코덱

픽셀 형식 디코더 인코더 픽셀 형식
GUID_WICPixelFormat32bppBGRA

JPEG 네이티브 코덱

픽셀 형식 디코더 인코더 픽셀 형식
GUID_WICPixelFormat8bppGray GUID_WICPixelFormat8bppGray
GUID_WICPixelFormat24bppBGR GUID_WICPixelFormat24bppBGR
GUID_WICPixelFormat32bppCMYK GUID_WICPixelFormat32bppCMYK

PNG 네이티브 코덱

픽셀 형식 디코더 인코더 픽셀 형식
GUID_WICPixelFormat1bppIndexed GUID_WICPixelFormat1bppIndexed
GUID_WICPixelFormat2bppIndexed GUID_WICPixelFormat2bppIndexed
GUID_WICPixelFormat4bppIndexed GUID_WICPixelFormat4bppIndexed
GUID_WICPixelFormat8bppIndexed GUID_WICPixelFormat8bppIndexed
GUID_WICPixelFormatBlackWhite GUID_WICPixelFormatBlackWhite
GUID_WICPixelFormat2bppGray GUID_WICPixelFormat2bppGray
GUID_WICPixelFormat4bppGray GUID_WICPixelFormat4bppGray
GUID_WICPixelFormat8bppGray GUID_WICPixelFormat8bppGray
GUID_WICPixelFormat16bppGray GUID_WICPixelFormat16bppGray
GUID_WICPixelFormat24bppBGR GUID_WICPixelFormat24bppBGR
GUID_WICPixelFormat32bppBGRA GUID_WICPixelFormat32bppBGRA
GUID_WICPixelFormat48bppRGB GUID_WICPixelFormat48bppRGB
GUID_WICPixelFormat64bppRGBA GUID_WICPixelFormat48bppBGR
GUID_WICPixelFormat64bppRGBA
GUID_WICPixelFormat64bppBGRA

TIFF 네이티브 코덱

픽셀 형식 디코더 인코더 픽셀 형식
GUID_WICPixelFormat1bppIndexed GUID_WICPixelFormat1bppIndexed
GUID_WICPixelFormat4bppIndexed GUID_WICPixelFormat4bppIndexed
GUID_WICPixelFormat8bppIndexed GUID_WICPixelFormat8bppIndexed
GUID_WICPixelFormatBlackWhite GUID_WICPixelFormatBlackWhite
GUID_WICPixelFormat4bppGray GUID_WICPixelFormat4bppGray
GUID_WICPixelFormat8bppGray GUID_WICPixelFormat8bppGray
GUID_WICPixelFormat16bppGray GUID_WICPixelFormat16bppGray
GUID_WICPixelFormat32bppGrayFloat GUID_WICPixelFormat24bppBGR
GUID_WICPixelFormat24bppBGR GUID_WICPixelFormat32bppBGRA
GUID_WICPixelFormat32bppBGRA GUID_WICPixelFormat32bppCMYK
GUID_WICPixelFormat32bppPBGRA GUID_WICPixelFormat48bppRGB
GUID_WICPixelFormat48bppRGB GUID_WICPixelFormat64bppRGBA
GUID_WICPixelFormat32bppCMYK
GUID_WICPixelFormat40bppCMYKAlpha
GUID_WICPixelFormat64bppRGBA
GUID_WICPixelFormat64bppPRGBA
GUID_WICPixelFormat64bppCMYK
GUID_WICPixelFormat80bppCMYKAlpha
GUID_WICPixelFormat96bppRGBFloat*
GUID_WICPixelFormat128bppRGBAFloat
GUID_WICPixelFormat128bppPRGBAFloat

참고 항목

GUID_ WICPixelFormat96bppRGBFloat은 Windows 8, Windows 7용 플랫폼 업데이트 이상에서만 지원됩니다.

HEIF 네이티브 코덱

깊이 전용 및 게인 전용 형식입니다. 이러한 픽셀 형식 GUID를 사용하면 사진 뷰어에서 HEIF 이미지의 대체 표현을 검색할 수 있습니다.

픽셀 형식 디코더 인코더 픽셀 형식
GUID_WICPixelFormat8bppDepth GUID_WICPixelFormat8bppDepth
GUID_WICPixelFormat8bppGain GUID_WICPixelFormat8bppGain

JPEG XR 네이티브 코덱

픽셀 형식 디코더 인코더 픽셀 형식
GUID_WICPixelFormatBlackWhite GUID_WICPixelFormatBlackWhite
GUID_WICPixelFormat8bppGray GUID_WICPixelFormat8bppGray
GUID_WICPixelFormat16bppBGR555 GUID_WICPixelFormat16bppBGR555
GUID_WICPixelFormat16bppGray GUID_WICPixelFormat16bppGray
GUID_WICPixelFormat24bppBGR GUID_WICPixelFormat24bppBGR
GUID_WICPixelFormat24bppRGB GUID_WICPixelFormat24bppRGB
GUID_WICPixelFormat32bppBGR GUID_WICPixelFormat32bppBGR
GUID_WICPixelFormat32bppBGRA GUID_WICPixelFormat32bppBGRA
GUID_WICPixelFormat48bppRGBFixedPoint GUID_WICPixelFormat48bppRGBFixedPoint
GUID_WICPixelFormat16bppGrayFixedPoint GUID_WICPixelFormat16bppGrayFixedPoint
GUID_WICPixelFormat32bppBGR101010 GUID_WICPixelFormat32bppBGR101010
GUID_WICPixelFormat48bppRGB GUID_WICPixelFormat48bppRGB
GUID_WICPixelFormat64bppRGBA GUID_WICPixelFormat64bppRGBA
GUID_WICPixelFormat96bppRGBFixedPoint GUID_WICPixelFormat96bppRGBFixedPoint
GUID_WICPixelFormat96bppRGBFixedPoint GUID_WICPixelFormat128bppRGBAFloat
GUID_WICPixelFormat128bppRGBFloat GUID_WICPixelFormat128bppRGBFloat
GUID_WICPixelFormat32bppCMYK GUID_WICPixelFormat32bppCMYK
GUID_WICPixelFormat64bppRGBAFixedPoint GUID_WICPixelFormat64bppRGBAFixedPoint
GUID_WICPixelFormat128bppRGBAFixedPoint GUID_WICPixelFormat128bppRGBAFixedPoint
GUID_WICPixelFormat64bppCMYK GUID_WICPixelFormat64bppCMYK
GUID_WICPixelFormat24bpp3Channels GUID_WICPixelFormat24bpp3Channels
GUID_WICPixelFormat32bpp4Channels GUID_WICPixelFormat32bpp4Channels
GUID_WICPixelFormat40bpp5Channels GUID_WICPixelFormat40bpp5Channels
GUID_WICPixelFormat48bpp6Channels GUID_WICPixelFormat48bpp6Channels
GUID_WICPixelFormat56bpp7Channels GUID_WICPixelFormat56bpp7Channels
GUID_WICPixelFormat64bpp8Channels GUID_WICPixelFormat64bpp8Channels
GUID_WICPixelFormat48bpp3Channels GUID_WICPixelFormat48bpp3Channels
GUID_WICPixelFormat64bpp4Channels GUID_WICPixelFormat64bpp4Channels
GUID_WICPixelFormat80bpp5Channels GUID_WICPixelFormat80bpp5Channels
GUID_WICPixelFormat96bpp6Channels GUID_WICPixelFormat96bpp6Channels
GUID_WICPixelFormat112bpp7Channels GUID_WICPixelFormat112bpp7Channels
GUID_WICPixelFormat128bpp8Channels GUID_WICPixelFormat128bpp8Channels
GUID_WICPixelFormat40bppCMYKAlpha GUID_WICPixelFormat40bppCMYKAlpha
GUID_WICPixelFormat80bppCMYKAlpha GUID_WICPixelFormat80bppCMYKAlpha
GUID_WICPixelFormat32bpp3ChannelsAlpha GUID_WICPixelFormat32bpp3ChannelsAlpha
GUID_WICPixelFormat64bpp7ChannelsAlpha GUID_WICPixelFormat40bpp4ChannelsAlpha
GUID_WICPixelFormat72bpp8ChannelsAlpha GUID_WICPixelFormat48bpp5ChannelsAlpha
GUID_WICPixelFormat64bpp3ChannelsAlpha GUID_WICPixelFormat56bpp6ChannelsAlpha
GUID_WICPixelFormat80bpp4ChannelsAlpha GUID_WICPixelFormat64bpp7ChannelsAlpha
GUID_WICPixelFormat96bpp5ChannelsAlpha GUID_WICPixelFormat72bpp8ChannelsAlpha
GUID_WICPixelFormat112bpp6ChannelsAlpha GUID_WICPixelFormat64bpp3ChannelsAlpha
GUID_WICPixelFormat128bpp7ChannelsAlpha GUID_WICPixelFormat80bpp4ChannelsAlpha
GUID_WICPixelFormat144bpp8ChannelsAlpha GUID_WICPixelFormat96bpp5ChannelsAlpha
GUID_WICPixelFormat64bppRGBAHalf GUID_WICPixelFormat112bpp6ChannelsAlpha
GUID_WICPixelFormat48bppRGBHalf GUID_WICPixelFormat128bpp7ChannelsAlpha
GUID_WICPixelFormat32bppRGBE GUID_WICPixelFormat144bpp8ChannelsAlpha
GUID_WICPixelFormat16bppGrayHalf GUID_WICPixelFormat64bppRGBAHalf
GUID_WICPixelFormat32bppGrayFixedPoint GUID_WICPixelFormat48bppRGBHalf
GUID_WICPixelFormat64bppRGBFixedPoint GUID_WICPixelFormat32bppRGBE
GUID_WICPixelFormat128bppRGBFixedPoint GUID_WICPixelFormat16bppGrayHalf
GUID_WICPixelFormat64bppRGBHalf GUID_WICPixelFormatBlackWhite

DDS 네이티브 코덱

픽셀 형식 디코더 인코더 픽셀 형식
GUID_WICPixelFormat32bppBGRA GUID_WICPixelFormat32bppBGRA
GUID_WICPixelFormat32bppPBGRA GUID_WICPixelFormat32bppPBGRA

참고 항목

DDS Windows 제공 코덱은 다음 DXGI_FORMAT 값을 사용하여 인코딩된 DDS 파일을 지원합니다.

  • DXGI_FORMAT_BC1_UNORM
  • DXGI_FORMAT_BC2_UNORM
  • DXGI_FORMAT_BC3_UNORM

디코딩되고 GUID_WICPixelFormat32bppBGRA 또는 GUID_WICPixelFormat32bppPBGRA 인코딩됩니다. 자세한 내용은 DDS 형식 개요를 참조하세요.

픽셀 형식 확장성

사용자 지정 이미지 형식은 YCbCr(YUV) 및 YCCK(Y/Cb/Cr/K)와 같이 WIC에서 기본적으로 제공되지 않는 픽셀 형식을 사용할 수 있습니다. WIC는 기본 제공 및 추가 기능 픽셀 형식이 모두 동일한 이미징 파이프라인 내에서 작동할 수 있도록 하는 확장성 모델을 제공합니다. 이러한 픽셀 형식을 WIC 이미징 파이프라인과 통합하려면 추가 기능 픽셀 형식을 네이티브 픽셀 형식 중 하나 이상으로 변환하는 픽셀 형식 변환기를 만들어야 합니다. 형식 변환기를 빌드하기 위한 기본 인터페이스는 IWICFormatConverter입니다.

개념

Windows 이미징 구성 요소 개요

WIC GUID 및 CLSID

기타 리소스

WIC 사용 CODEC를 작성하는 방법

HD 사진 형식 개요