Share via


WIC의 새로운 기능

WIC(Windows 이미징 구성 요소)가 Windows의 새 릴리스로 업데이트되었습니다. 이 항목에서는 이러한 새로운 기능을 빠르게 소개합니다.

Windows 10 버전 1507의 새로운 기능

WIC 디코딩 및 인코딩을 위한 낮은 수준의 JPEG 데이터에 대한 액세스

Windows 10 버전 1507부터 WIC는 Huffman 및 수량화 테이블을 비롯한 낮은 수준의 JPEG 데이터 구조에 대한 액세스를 제공합니다. 자세한 내용은 아래 항목을 참조하세요.

JPEG 인덱싱

JPEG 인덱싱은 일부 추가 메모리 사용의 비용으로 대규모 JPEG 이미지의 작은 하위 영역에 임의로 액세스하는 성능을 크게 향상시키는 기술입니다. JPEG 인덱싱은 모든 WIC 호출자가 활용할 수 있습니다.

ID2D1ImageSourceFromWic 인터페이스는 켜져 있는 경우 JPEG 인덱싱을 활용하도록 설계되었습니다. 예를 들어 ID2D1ImageSource API는 큰 해상도 이미지의 이동 및 확대/축소와 같은 시나리오에서 필요한 이미지 섹션만 요청합니다. 자세한 내용은 아래 항목을 참조하세요.

Windows 8.1 새로운 기능

JPEG YCbCr 이미지 지원

Windows 8.1 WIC는 JPEG Y'CbCr 이미지 데이터를 기본 형식으로 디코딩, 변환 및 인코딩할 수 있는 지원을 제공합니다. 이를 통해 앱은 Y'CbCr로 인코딩된 JPEG로 작업할 때 특정 이미징 작업에 대한 처리 시간과 메모리 소비를 크게 줄일 수 있습니다. 자세한 내용은 아래 항목을 참조하세요.

블록 압축 형식 지원(DDS 파일)

Windows 8.1 WIC는 DXGI_FORMAT_BC1_UNORM, DXGI_FORMAT_BC2_UNORM 및 DXGI_FORMAT_BC3_UNORM 형식으로 인코딩된 DDS 이미지를 지원하는 새 코덱을 추가합니다. DDS 블록 압축 데이터는 표준 WIC 인터페이스를 사용하여 디코딩된 형식으로 액세스하거나 새 DDS 특정 인터페이스를 사용하여 직접 액세스할 수 있습니다. 자세한 내용은 아래 항목을 참조하세요.

Windows 8 새로운 기능

Windows 8 WIC는 몇 가지 새로운 기능으로 업데이트되었습니다. 업데이트된 버전의 WIC는 Windows 7용 플랫폼 업데이트를 통해 제공되는 Windows 7용 플랫폼 업데이트를 통해 Windows 7 및 Windows Server 2008 R2에서도 사용할 수 있습니다.

향상된 Direct2D 통합

Windows 8 WIC는 WIC와의 Direct2D 통합을 개선하기 위해 다음과 같은 API를 제공합니다.

BMP 코덱 알파 지원 변경

Windows 8 WIC는 BITMAPV5HEADER 이미지 파일을 WICPixelFormat32bppBGRA 형식 이미지로 로드할 수 있습니다. 또한 BMP 인코더는 32bppBGRA 이미지 데이터를 사용하여 BITMAPV5HEADER 를 작성하도록 인코더에 지시하는 새 부울 인코더 옵션 "EnableV5Header32bppBGRA"를 지원합니다.

BMP 형식에 대한 자세한 내용은 BMP 형식 개요를 참조하세요.

새 픽셀 형식

Windows 8 WIC는 다음과 같은 새 픽셀 형식을 정의합니다.

  • GUID_WICPixelFormat32bppRGB
  • GUID_WICPixelFormat64bppRGB
  • GUID_WICPixelFormat96bppRGBFloat
  • GUID_WICPixelFormat64bppPRGBAHalf

참고

TIFF 기본 제공 코덱은 GUID_WICPixelFormat96bppRGBFloat 데이터를 반환합니다. 다른 세 가지 형식은 기본 제공 코덱에서 사용되지 않습니다.

 

AppContainer의 구성 요소 확장성에 대한 제한 사항

모든 Windows 스토어 앱을 포함하는 AppContainer 프로세스에서 실행하는 경우 WIC는 시스템에 추가 구성 요소가 설치되어 있는지 여부에 관계없이 Windows에서 제공하는 구성 요소만 사용합니다. AppContainer에서 실행되지 않는 앱은 영향을 받지 않습니다.

앱은 AppContainger에서 실행하기 위해 코드를 변경할 필요가 없지만 WICComponentEnumerateOptions 플래그 및 공급업체 GUID 매개 변수는 영향을 주지 않습니다. WIC는 Windows 제공 코덱에서 디코딩할 수 없는 경우 이미지를 로드하지 못하며 CreateComponentEnumerator 메서드를 호출하면 Windows 제공 구성 요소만 반환됩니다.

CLSID_WICPngDecoder 및 PNG 디코더 색 컨텍스트 지원에 대한 변경 내용

CLSID_WICPngDecoder1CLSID_WICPngDecoder 동일한 GUID로 추가되었으며 CLSID_WICPngDecoder2 추가되었습니다.

Windows 8 SDK에 대해 컴파일되는 경우 CLSID_WICPngDecoder 새 PNG 디코더 동작을 사용하여 새로 컴파일된 앱을 승격하도록 CLSID_WICPngDecoder2 #defined. 앱은 계속해서 CLSID_WICPngDecoder 지정해야 합니다.

CLSID_WICPngDecoder2 지정하면 cHRM 및 gAMA 청크에서 IWICColorContext를 생성하는 WIC PNG 디코더 버전이 생성됩니다. 이렇게 하면 원본 이미지를 관리하는 색을 위해 다른 Windows API와 함께 이 색 공간 메타데이터를 사용할 수 있습니다. iCCP 청크가 있거나, sRGB 청크가 있거나, gAMA 및 cHRM 청크가 sRGB 색 공간을 나타내는 경우 gAMA 및 cHRM 청크에서 IWICColorContext 가 생성되지 않습니다.

앱은 CLSID_WICPngDecoder1 지정하여 gAMA 및 cHRM 청크에서 IWICColorContext 를 생성하지 않는 WIC PNG 디코더 버전을 만들 수 있습니다. 이는 이전 버전의 Windows에서 PNG 디코더의 동작과 일치합니다.

WINCODEC_SDK_VERSION 변경 내용

Windows 8 SDK에 대해 컴파일되면 WINCODEC_SDK_VERSION 새 PNG 디코더 동작을 사용하여 새로 컴파일된 앱을 승격하도록 WINCODEC_SDK_VERSION2 #defined. 그렇지 않으면 WINCODEC_SDK_VERSION1 #defined. 앱은 계속해서 WINCODEC_SDK_VERSION 지정해야 합니다.

이미징 팩터리를 만들기 위해 WICCreateImagingFactory_Proxy 호출할 때WINCODEC_SDK_VERSION 지정하면 CreateDecoder 메서드 및 해당 변형에서 CLSID_WICPngDecoder1 대신 CLSID_WICPngDecoder2 만들어집니다. 또한 디코더 구성 요소 정보 열거자는 CLSID_WICPngDecoder2 구성 요소 정보를 반환하지만 CLSID_WICPngDecoder1 정보를 반환하지 않습니다.

WINCODEC_SDK_VERSION1 지정하면 위의 경우 CLSID_WICPngDecoder2 대신 CLSID_WICPngDecoder1 사용됩니다.

CLSID_WICImagingFactory 변경 내용

CLSID_WICImagingFactory1CLSID_WICImagingFactory 동일한 GUID로 추가되었으며 CLSID_WICImagingFactory2 추가되었습니다.

Windows 8 SDK에 대해 컴파일되면 CLSID_WICImagingFactory 새 PNG 디코더 동작을 사용하여 새로 컴파일된 앱을 승격하도록 CLSID_WICImagingFactory2 #defined. 앱은 계속해서 CLSID_WICImagingFactory 지정해야 합니다.

CoCreateInstance를 호출하여 이미징 팩터리를 만들 때 CLSID_WICImagingFactory2 지정하면 CreateDecoder 메서드 및 해당 변형에서 CLSID_WICPngDecoder1 대신 CLSID_WICPngDecoder2 만들어집니다. 또한 디코더 구성 요소 정보 열거자는 CLSID_WICPngDecoder2 구성 요소 정보를 반환하지만 CLSID_WICPngDecoder1 정보를 반환하지 않습니다.

CLSID_WICImagingFactory1 지정하면 위의 경우 CLSID_WICPngDecoder2 대신 CLSID_WICPngDecoder1 사용됩니다.

Windows 7의 새로운 기능

Windows 7에서 WIC는 몇 가지 새로운 기능으로 업데이트되었습니다. 이 항목에서는 이러한 새로운 기능을 빠르게 소개합니다.

TIFF 코덱에 업데이트

WIC TIFF 코덱은 이전 버전의 WIC에서 지원되지 않는 여러 기능을 지원하도록 Windows 7용으로 업데이트되었습니다.

  • 대용량 TIFF 파일을 지원합니다.
  • 타일형 TIFF 이미지를 디코딩합니다.
  • 플랫(평면) TIFF 이미지를 디코딩합니다.
  • JPEG로 인코딩된 TIFF 이미지를 디코딩합니다.

프로그레시브 디코딩

점진적 디코딩은 전체 이미지 다운로드를 완료하기 전에 이미지의 일부를 증분 방식으로 디코딩하고 렌더링하는 기능을 제공합니다. 이 기능은 사용자가 디코딩을 시작하기 전에 전체 이미지가 다운로드될 때까지 기다릴 필요가 없으므로 인터넷에서 이미지를 볼 때 사용자 환경을 크게 향상시킵니다. 점진적 디코딩을 사용하면 사용자는 전체 이미지를 다운로드하기 훨씬 전에 사용 가능한 데이터가 있는 이미지 미리 보기를 볼 수 있습니다. 이 기능은 인터넷 또는 제한된 대역폭의 데이터 원본에서 이미지를 보는 데 사용되는 모든 애플리케이션에 필수적입니다.

자세한 내용은 점진적 디코딩 개요를 참조하세요.

JPEG, PNG 및 GIF에 대한 추가 메타데이터 지원

Windows 7에서 WIC는 JPEG, PNG 및 GIF 이미지에 대한 메타데이터 지원을 확장했습니다.

  • 애니메이션 GIF 및 GIF 속성에 대한 지원이 추가되었습니다.
  • CHG 메타데이터 처리기를 확장하여 색광, 광도 및 주석 메타데이터를 지원합니다.
  • tIME, sRGB, iCCP, hIST, cHRM, iTXt, bKGD 및 gAMA 메타데이터를 지원하도록 PNG 메타데이터 처리기를 확장했습니다.
  • ResolutionInfo 메타데이터 및 IPTC 다이제스트 메타데이터에 대한 새로운 8BIM 메타데이터 처리기가 추가되었습니다.
  • LSD(논리 화면 설명자), IMD(이미지 설명자), GCE(그래픽 제어 확장) 및 APE(애플리케이션 확장) 메타데이터에 대한 새 메타데이터 처리기가 추가되었습니다.
  • APPn 블록에 걸쳐 있는 메타데이터에 대한 지원

다중 스레드 아파트 지원

MTA(다중 스레드 아파트) 내의 개체는 MTA 내의 스레드 수에 따라 동시에 호출될 수 있으므로 다중 코어 시스템 및 특정 서버 시나리오에서 성능을 향상할 수 있습니다. 또한 MTA 내에 있는 WIC 코덱은 다른 STA 아파트에 거주하는 스레드 간의 호출과 관련된 마샬링 비용 없이 MTA 내에 있는 다른 개체를 호출할 수 있습니다. Windows 7에서는 JPEG, TIFF, PNG, GIF, ICO 및 BMP를 포함하여 MTA를 지원하도록 모든 기본 WIC 코덱이 업데이트되었습니다. MTA를 지원하기 위해 코덱을 작성하는 것이 좋습니다. MTA를 지원하지 않는 코덱은 마샬링으로 인해 다중 스레드 애플리케이션에서 상당한 성능 저하를 일으킵니다. MTA 지원을 사용하도록 설정하려면 코덱에서 적절한 동기화를 구현해야 합니다. 이러한 동기화 기술의 정확한 구현은 이 문서의 scope. COM(구성 요소 개체 모델) 개체 동기화에 대한 일반적인 참조는 다음과 같습니다.

메타데이터 작업 그룹 구현

현재 이러한 메타데이터 형식을 읽고 쓰기 위한 일관된 방법에 대한 명확한 업계 표준 또는 지침 없이 겹치는 속성을 포함하는 다양한 메타데이터 스토리지 형식이 있습니다. 이러한 다양한 형식 및 속성을 돕기 위해 MWG(메타데이터 작업 그룹)가 형성되었습니다. MWG의 목적은 다양한 플랫폼, 애플리케이션 및 디바이스 간의 상호 운용성을 보장하는 지침을 제공하는 것입니다. MWG에서 설정한 지침은 XMP, Exif 및 IPTC 메타데이터 필드와 JPEG, TIFF 및 PSD 이미지 형식에 적용됩니다.

Windows 7에서는 MWG에서 설정한 지침에 따라 사진 메타데이터 처리기 및 메타데이터 정책 계층이 이미지 메타데이터를 읽고 쓰도록 업데이트되었습니다. MWG(메타데이터 작업 그룹)에 대한 자세한 내용은 설정된 메타데이터 지침을 참조하세요.

Windows Vista 및 Windows Server 2008에서 지원되는 Windows 7 기능

Windows Vista용 플랫폼 업데이트는 개발자가 Windows 7 및 Windows Vista 모두에 애플리케이션을 대상으로 지정할 수 있는 런타임 라이브러리 집합입니다. Windows Server 2008용 플랫폼 업데이트는 개발자가 Windows Server 2008 R2 및 Windows Server 2008 모두에 애플리케이션을 대상으로 지정할 수 있는 런타임 라이브러리 집합입니다. Windows Vista용 플랫폼 업데이트 및 Windows Server 2008용 플랫폼 업데이트는 Windows 업데이트 통해 모든 Windows Vista 및 Windows Server 2008 고객에게 제공됩니다. Windows Vista용 플랫폼 업데이트 또는 Windows Server 2008용 플랫폼 업데이트가 필요한 타사 애플리케이션은 필요한 업데이트가 설치되어 있는지 여부를 검색할 Windows 업데이트 있습니다. 그렇지 않은 경우 Windows 업데이트 다운로드하여 백그라운드에서 설치합니다. 두 업데이트에 대한 자세한 내용은 Windows Vista용 플랫폼 업데이트를 참조하세요.