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


Новые возможности WIC

Компонент обработки образов Windows (WIC) был обновлен с помощью новых выпусков Windows. В этом разделе представлено краткое введение в эти новые функции.

Новые возможности Windows 10 версии 1507

Доступ к низкоуровневые данные JPEG для декодирования и кодирования WIC

Начиная с Windows 10 версии 1507, WIC предоставляет доступ к низкоуровневым структурам данных JPEG, включая Huffman и таблицы квантования. Дополнительные сведения см. в следующих разделах:

Индексирование JPEG

Индексирование JPEG — это метод, который значительно повышает производительность произвольного доступа к небольшим подотраслям большого изображения JPEG за счет дополнительного использования памяти. Индексирование JPEG может использовать любой вызывающий объект WIC.

Интерфейс ID2D1ImageSourceFromWic предназначен для использования индексирования JPEG, если он включен. Например, API ID2D1ImageSource запрашивает только необходимые разделы изображения в таком сценарии, как сдвиг и масштабирование для изображения большого разрешения. Дополнительные сведения см. в следующих разделах:

Новые возможности Windows 8.1

Поддержка изображений JPEG YCbCr

Начиная с Windows 8.1, WIC обеспечивает поддержку декодирования, преобразования и кодирования данных изображений JPEG Y'CbCr в собственном формате. Это позволяет приложениям значительно сократить время обработки и потребление памяти для некоторых операций создания образов при работе с JPEG в кодировке Y'CbCr. Дополнительные сведения см. в следующих разделах:

Поддержка форматов со сжатием блоков (DDS-файлы)

Начиная с Windows 8.1, WIC добавляет новый кодек, который поддерживает изображения DDS, закодированные в следующих форматах: DXGI_FORMAT_BC1_UNORM, DXGI_FORMAT_BC2_UNORM и DXGI_FORMAT_BC3_UNORM. Доступ к данным блока DDS можно получить в декодированном виде с помощью стандартных интерфейсов WIC или напрямую с помощью новых интерфейсов DDS. Дополнительные сведения см. в следующих разделах:

Новые возможности для Windows 8

В Windows 8 wic был обновлен с несколькими новыми функциями. Обновленная версия WIC также доступна в Windows 7 и Windows Server 2008 R2 через Обновление платформы для Windows 7, которое доступно в Обновлении платформы для Windows 7.

Улучшенная интеграция Direct2D

WIC в Windows 8 предоставляет следующие API для улучшения интеграции Direct2D с WIC:

  • IWICImageEncoder — новый интерфейс, который может кодировать содержимоеDirect2D2D1Image в IWICBitmapFrameEncode. Методы этого интерфейса принимают указатель на WICImageParameters, которые являются параметрами для управления кодировкой.
  • IWICImagingFactory2 — новая фабрика WIC с методом CreateImageEncoder . Этот интерфейс наследуется от исходной фабрики WIC IWICImagingFactory и создается таким же образом.

Изменения в поддержке альфа-кодека BMP

WIC в Windows 8 поддерживает загрузку файлов образов BITMAPV5HEADER в виде изображений в формате WICPixelFormat32bppBGRA. Кроме того, кодировщик BMP поддерживает новый параметр логического кодировщика EnableV5Header32bppBGRA, который предписывает кодировщику записать BITMAPV5HEADER с данными изображения 32bppBGRA.

Дополнительные сведения о форматах BMP см. в статье Общие сведения о форматах BMP.

Новые форматы пикселей

WIC в Windows 8 определяет следующие новые форматы пикселей:

  • GUID_WICPixelFormat32bppRGB
  • GUID_WICPixelFormat64bppRGB
  • GUID_WICPixelFormat96bppRGBFloat
  • GUID_WICPixelFormat64bppPRGBAHalf

Примечание

Встроенный кодек TIFF вернет GUID_WICPixelFormat96bppRGBFloat данные. Другие три формата не используются встроенными кодеками.

 

Ограничения расширяемости компонентов в AppContainer

При выполнении в процессе AppContainer, который включает все приложения Магазина Windows, WIC будет использовать только компоненты, предоставляемые Windows, независимо от того, установлены ли дополнительные компоненты в системе. Приложения, которые не выполняются в AppContainer, не затрагиваются.

Приложениям не нужно вносить какие-либо изменения в код для запуска в AppContainger, но флаг WICComponentEnumerateOptions и параметры GUID поставщика не будут иметь никакого влияния. WIC не сможет загрузить изображение, если его не удается декодировать с помощью предоставленного windows кодека, а вызов метода CreateComponentEnumerator вернет только предоставленные Windows компоненты.

Изменения в поддержке цветового контекста декодера CLSID_WICPngDecoder и PNG

CLSID_WICPngDecoder1 добавлен с тем же идентификатором GUID, что и CLSID_WICPngDecoder, и добавлена CLSID_WICPngDecoder2 .

При компиляции в пакете SDK для Windows 8 CLSID_WICPngDecoder #defined CLSID_WICPngDecoder2 для продвижения новых скомпилированных приложений с помощью нового поведения декодера PNG. Приложения должны по-прежнему указывать CLSID_WICPngDecoder.

При указании CLSID_WICPngDecoder2 будет создана версия декодера WIC PNG, который создаст IWICColorContext из блоков cHRM и gAMA. Это позволяет использовать эти метаданные цветового пространства с другими API Windows для управления цветом исходного образа. IWICColorContext не создается из блоков gAMA и cHRM при наличии блока iCCP, при наличии блока sRGB или если блоки gAMA и cHRM указывают на цветовое пространство sRGB.

Приложение может указать CLSID_WICPngDecoder1 для создания версии декодера WIC PNG, которая не создает IWICColorContext из блоков gAMA и cHRM. Это соответствует поведению декодера PNG в предыдущих версиях Windows.

Изменения в WINCODEC_SDK_VERSION

При компиляции в пакете SDK для Windows 8 WINCODEC_SDK_VERSION #defined WINCODEC_SDK_VERSION2 для продвижения новых скомпилированных приложений с помощью нового поведения декодера PNG. В противном случае WINCODEC_SDK_VERSION1 #defined. Приложения должны по-прежнему указывать WINCODEC_SDK_VERSION.

Указание WINCODEC_SDK_VERSION при вызове WICCreateImagingFactory_Proxy для создания фабрики образов приводит к созданию CLSID_WICPngDecoder2 вместо CLSID_WICPngDecoder1 из метода CreateDecoder и его вариантов. Кроме того, перечислитель сведений о компоненте декодера возвращает CLSID_WICPngDecoder2 сведения о компоненте, но не CLSID_WICPngDecoder1 сведения.

При указании WINCODEC_SDK_VERSION1 в указанных выше случаях вместо CLSID_WICPngDecoder2 будет использоваться CLSID_WICPngDecoder1.

Изменения в CLSID_WICImagingFactory

CLSID_WICImagingFactory1 добавлен с тем же ИДЕНТИФИКАТОРом GUID, что и CLSID_WICImagingFactory, и добавлена CLSID_WICImagingFactory2 .

При компиляции в пакете SDK для Windows 8 CLSID_WICImagingFactory #defined CLSID_WICImagingFactory2 для продвижения новых скомпилированных приложений с помощью нового поведения декодера PNG. Приложения должны по-прежнему указывать CLSID_WICImagingFactory.

Указание CLSID_WICImagingFactory2 при вызове CoCreateInstance для создания фабрики образов приводит к созданию CLSID_WICPngDecoder2 вместо CLSID_WICPngDecoder1 из метода CreateDecoder и его вариантов. Кроме того, перечислитель сведений о компоненте декодера возвращает CLSID_WICPngDecoder2 сведения о компоненте, но не CLSID_WICPngDecoder1 сведения.

Указание CLSID_WICImagingFactory1 приведет к использованию CLSID_WICPngDecoder1 вместо CLSID_WICPngDecoder2 в указанных выше случаях.

Новые возможности Windows 7

В Windows 7 WIC была обновлена с несколькими новыми функциями. В этом разделе представлено краткое введение в эти новые функции.

Обновления в кодек TIFF

Кодек WIC TIFF был обновлен для Windows 7 для поддержки нескольких функций, не поддерживаемых предыдущей версией WIC.

  • Поддержка больших TIFF-файлов.
  • Декодирование мозаичного TIFF-изображений.
  • Декодирование плоских (плоских) изображений TIFF.
  • Декодирование изображений TIFF в формате JPEG.

Прогрессивное декодирование

Прогрессивное декодирование позволяет постепенно декодировать и отрисовывать части изображения до завершения скачивания всего образа. Эта функция значительно улучшает взаимодействие с пользователем при просмотре изображений из Интернета, так как пользователю не нужно ждать скачивания всего изображения, прежде чем начнется декодирование. Благодаря прогрессивному декодированию пользователи могут видеть предварительный просмотр изображения с доступными данными задолго до скачивания всего изображения. Эта функция необходима для любого приложения, используемого для просмотра изображений из Интернета или из источников данных с ограниченной пропускной способностью.

Дополнительные сведения см. в разделе Общие сведения о прогрессивном декодирования.

Расширенная поддержка метаданных для JPEG, PNG и GIF

В Windows 7 WIC расширил поддержку метаданных для изображений JPEG, PNG и GIF.

  • Добавлена поддержка анимированных свойств GIF и GIF.
  • Расширенные обработчики метаданных JPG для поддержки метаданных хрома, яркости и комментариев.
  • Расширенные обработчики метаданных PNG для поддержки метаданных tIME, sRGB, iCCP, hIST, cHRM, iTXt, bKGD и gAMA.
  • Добавлены новые обработчики метаданных 8BIM для метаданных ResolutionInfo и метаданных дайджеста IPTC.
  • Добавлены новые обработчики метаданных для дескриптора логического экрана (LSD), дескриптора изображений (IMD), расширений графических элементов управления (GCE) и расширений приложений (APE).
  • Поддержка метаданных, охватывающих блоки APPn.

Поддержка многопоточных квартир

Объекты в многопоточных подразделениях (MTA) могут вызываться одновременно любым количеством потоков в MTA, что обеспечивает более высокую производительность в многоядерных системах и определенных сценариях сервера. Кроме того, кодеки WIC, которые находятся в MTA, могут вызывать другие объекты, находящиеся в пределах MTA, без затрат на маршалинг, связанных с вызовами между потоками, которые находятся в разных квартирах STA. В Windows 7 все встроенные кодеки WIC были обновлены для поддержки MTA, включая JPEG, TIFF, PNG, GIF, ICO и BMP. Настоятельно рекомендуется писать кодеки для поддержки MTA. Кодеки, которые не поддерживают MTA, приведут к значительному снижению производительности в многопоточных приложениях из-за маршалинга. Включение поддержки MTA требует правильной синхронизации в кодеке. Точная реализация этих методов синхронизации выходит за рамки область данной статьи. Ниже приведен общий справочник по синхронизации объектов COM.

Реализации рабочей группы метаданных

В настоящее время существуют различные форматы хранения метаданных, которые содержат перекрывающиеся свойства, без каких-либо четких отраслевых стандартов или рекомендаций по согласованным методам чтения и записи этих форматов метаданных. Чтобы помочь с таким разнообразием форматов и свойств, была создана рабочая группа метаданных (MWG). Цель MWG — предоставить рекомендации, обеспечивающие взаимодействие между различными платформами, приложениями и устройствами. Рекомендации, установленные MWG, применяются к полям метаданных XMP, Exif и IPTC, а также к форматам изображений JPEG, TIFF и PSD.

В Windows 7 обработчик метаданных фотографий и уровень политики метаданных метаданных были обновлены для чтения и записи метаданных изображений в соответствии с рекомендациями, установленными MWG. Дополнительные сведения о рабочей группе по метаданным (MWG) см. в установленных руководящих принципах по метаданным.

Функции Windows 7, поддерживаемые в Windows Vista и Windows Server 2008

Обновление платформы для Windows Vista — это набор библиотек времени выполнения, которые позволяют разработчикам нацеливать приложения как на Windows 7, так и на Windows Vista. Обновление платформы для Windows Server 2008 — это набор библиотек времени выполнения, которые позволяют разработчикам нацеливать приложения на Windows Server 2008 R2 и Windows Server 2008. Обновление платформы для Windows Vista и обновление платформы для Windows Server 2008 будут доступны всем клиентам Windows Vista и Windows Server 2008 через клиентский компонент Центра обновления Windows. Сторонние приложения, которым требуется Обновление платформы для Windows Vista или Обновление платформы для Windows Server 2008, могут клиентский компонент Центра обновления Windows определить, установлено ли необходимое обновление; в противном случае клиентский компонент Центра обновления Windows скачит и установит его в фоновом режиме. Дополнительные сведения об обоих обновлениях см. в разделе Обновление платформы для Windows Vista.