Компонента для windows wic

Windows Imaging Component Overview

The Windows Imaging Component (WIC) provides an extensible framework for working with images and image metadata. WIC makes it possible for independent software vendors (ISVs) and independent hardware vendors (IHVs) to develop their own image codecs and get the same platform support as standard image formats (for example, TIFF, JPEG, PNG, GIF, BMP, and HDPhoto). A single, consistent set of interfaces is used for all image processing, regardless of image format, so any application using the WIC gets automatic support for new image formats as soon as the codec is installed. The extensible metadata framework makes it possible for applications to read and write their own proprietary metadata directly to image files, so the metadata never gets lost or separated from the image.

This topic includes the following sections.

Windows Imaging Component Features

The primary features of WIC are:

  • Enables application developers to perform image processing operations on any image format through a single, consistent set of common interfaces, without requiring prior knowledge of specific image formats.
  • Provides an extensible «plug and play» architecture for image codecs, pixel formats, and metadata, with automatic run-time discovery of new formats.
  • Supports reading and writing of arbitrary metadata in image files, with the ability to preserve unrecognized metadata during editing.
  • Preserves high bit depth image data, up to 32 bits per channel, throughout the image processing pipeline.
  • Provides built-in support for most popular image formats, pixel formats, and metadata schemas.

Native Codecs

WIC includes several built-in codecs. The following standard codecs are provided with the platform.

Windows Imaging Component 1.0

Компонент Windows Imaging — это системная утилита, которая предоставляет программное обеспечение с поддержкой WIC, позволяющее просматривать и редактировать любые форматы изображений. Инструмент также позволяет писать и читать метаданные файлов изображений. Этот компонент позволяет любому приложению использовать новые графические форматы сразу после установки на компьютер соответствующих кодеков.

Компонент Windows Imaging содержит кодеки WIC для различных форматов изображений, таких как GIF, PNG, JPEG, TIFF и BMP. В отличие от ранее выпущенных кодеков, эти кодеки обеспечивают повышенную безопасность. Компонент Windows Imaging также поддерживает новейший высокопроизводительный формат изображений: Windows Media Photo.

Компонент Windows Imaging также предлагает возможности записи и чтения метаданных для распространенных форматов изображений, позволяя приложениям сохранять свои метаданные в файлах изображений, не создавая «файлы дополнительных файлов».

Компонент Windows Imaging Component может быть установлен и использован в Microsoft Windows XP (с пакетом обновления 2) и Windows Server 2003.

Название Компонент Windows Imaging
Версия 1,0
Разработчик Microsoft Corp.
Домашняя страница продукта Компонент Windows Imaging
Лицензия Бесплатно (Freeware)
Загрузки прошлой недели 11
Все время загрузки 41434
Имя файла wic_x86_enu.exe
Размер файла 1.2MB
Контрольная сумма MD5 53F5CCBE5FE06C3B40CC9E34AC909DF7
Поддержка ОС Win 2003 / XP
Категория Инструменты разработчика

Похожие программы

LimeWire 5.4.6

Бесплатная и мощная программа для обмена файлами.

PS3 Emulator 1.1.7

Эмулятор Sony PlayStation PS3.

Читайте также:  Проверить установлен ли git linux
Wise Care 365 5.2.1.513

Программное обеспечение для очистки и оптимизации ПК.

WinMerge 2.16.2

Инструмент для управления файлами и каталогами.

Directory Opus 12.14

Файловый менеджер для Microsoft Windows.

NetDrive 3.7.687

Сетевой диск для Windows.

Tweaking.com — Windows Repair 4.4.8

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

Принцип работы компонента Windows Imaging

В этом разделе содержатся следующие подразделы.

Обнаружение и арбитраж

Перед декодированием образа необходимо найти соответствующий кодек, который может декодировать этот формат изображения. В большинстве систем, поскольку поддерживаемые форматы изображений жестко запрограммированы, процесс обнаружения не требуется. Поскольку платформа компонента Windows Imaging Component (WIC) является расширяемой, необходимо иметь возможность определять формат изображения и сопоставлять его с соответствующим кодеком.

Для поддержки обнаружения во время выполнения каждый формат изображения должен иметь идентифицирующий шаблон, который можно использовать для идентификации соответствующего декодера для этого формата. (Настоятельно рекомендуется, чтобы для новых форматов файлов использовался идентификатор GUID для идентифицирующего шаблона, так как он гарантированно уникален.) Идентифицирующий шаблон должен быть внедрен в каждый файл изображения, который соответствует этому формату изображения. У каждого декодера есть запись реестра, указывающая шаблон или шаблоны форматов изображений, которые он может декодировать. Когда приложению необходимо открыть образ, оно запрашивает декодер из WIC. Компонент WIC ищет доступные декодеры в реестре и проверяет каждую запись реестра на наличие идентифицирующего шаблона, соответствующего шаблону, внедренному в файл изображения. Дополнительные сведения о записях реестра декодера см. в разделе записи реестра, относящиеся к кодировщику .

Когда компонент WIC находит один декодер, соответствующий идентифицирующему шаблону в изображении, он создает экземпляр декодера и передает ему файл изображения. Если компонент WIC находит несколько совпадений, он вызывает метод, именуемый куерикапабилити , для каждого соответствующего декодера, чтобы запрограммировать их и найти лучшее соответствие. Дополнительные сведения см. в разделе куерикапабилитиес в реализации ивикбитмапдекодер.

Декодирование

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

  • Службы уровня контейнера
  • Службы уровня кадров
  • Службы перечисления метаданных
  • Встроенные преобразования декодера
  • Уведомления о ходе выполнения и поддержка отмены
  • Службы обработки RAW

Службы уровня контейнера включают извлечение эскиза верхнего уровня (если поддерживается), предварительный просмотр, контекст цвета, палитру (если применимо) и формат контейнера, а также предоставление доступа к отдельным кадрам изображений в контейнере. (Некоторые контейнеры содержат только один кадр, а другие, например формат TIFF, могут содержать несколько кадров.) Этот набор служб также включает в себя предоставление сведений о самом декодере и его возможностях относительно конкретного файла изображения.

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

WIC предоставляет средства чтения метаданных для наиболее распространенных форматов метаданных (IFD, EXIF, IPTC, XMP, APP0, APP1 и другие форматы), а также поддерживает расширение для форматов метаданных сторонних производителей. Это освобождает кодек ответственности за синтаксический анализ метаданных. Однако кодек отвечает за перечисление блоков метаданных и запрос модуля чтения метаданных для каждого блока. Компонент WIC выполняет обнаружение обработчиков метаданных так же, как и для кодеков, основываясь на шаблоне в заголовке блока, соответствующем шаблону в записи реестра обработчика метаданных. Дополнительные сведения см. в разделе записи реестра, относящиеся к кодировщику .

Читайте также:  Ch352l драйвер windows 10

Декодерам не требуется встроенная поддержка операций преобразования, но это позволяет значительно оптимизировать производительность, обеспечивая более эффективное взаимодействие с конечными пользователями. Например, приложение может создать конвейер различных преобразований (масштабирование, кадрирование, вращение и преобразование формата пикселей) для выполнения на изображении перед отрисовкой изображения. Дополнительные сведения о конвейерах преобразований см. в разделе IWICBitmapSource. После создания конвейера преобразования приложение запрашивает завершающее преобразование в конвейере для создания точечного рисунка, полученного в результате применения всех преобразований к источнику изображения. На этом этапе, если декодер способен выполнять операции преобразования, компонент WIC запрашивает, какие из запрошенных преобразований он может выполнить. Все запрошенные преобразования, которые не удается выполнить, будут выполняться компонентом WIC в декодированном изображении перед возвращением вызывающему объекту. Этот оптимизированный конвейер преобразований обеспечивает лучшую производительность по сравнению с выполнением каждого преобразования последовательно в памяти, особенно в том случае, если во время декодирования может быть выполнено несколько или всех преобразований.

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

Эти интерфейсы подробно описаны в разделе Реализация декодера WIC-Enabled.

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

Кодирование

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

  • Службы уровня контейнера
  • Службы уровня кадров
  • Перечисление метаданных и службы обновления
  • Поддержка уведомлений о ходе выполнения и отмены

Службы на уровне контейнера для кодировщика включают настройку эскиза верхнего уровня (если поддерживается), предварительный просмотр и палитру (если применимо) и перебор отдельных кадров изображения, чтобы их можно было сериализовать в контейнер.

Службы уровня кадров для отражения кодировщика, за исключением того, что они записывают данные изображения, эскиз и любую связанную палитру или другой компонент, а не считывают их.

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

Эти интерфейсы подробно описаны в разделе Реализация кодировщика WIC-Enabled.

Время существования кодека

Создается экземпляр кодека WIC для обработки одного образа и обычно имеет короткое время существования. Он создается при загрузке изображения и освобождается при закрытии изображения. Приложение может использовать большое количество кодеков одновременно с перекрывающимися жизненными циклами (Подумайте о прокрутке каталога, содержащего сотни изображений), и несколько приложений могут сделать это одновременно.

Хотя некоторые кодеки имеют жизненный цикл, ограниченный временем существования процесса, в котором они находятся, это не так с кодеками WIC. Фотоальбом Windows Vista, проводник Windows и средство просмотра фотографий, а также многочисленные другие приложения основаны на WIC и будут использовать кодек для вывода изображений и эскизов. Если время жизни кодека ограничено временем существования процесса, каждый раз, когда изображение или эскиз отображались в проводнике Windows Vista, кодек, созданный для декодирования этого изображения, будет оставаться в памяти до следующего момента, когда пользователь перезапускает свой компьютер. Если кодек никогда не выгружается, его ресурсы, по сути, называются «утечками», поскольку они не могут использоваться любым другим компонентом в системе.

Читайте также:  A4tech fg30 mac os

Как WIC поддерживает кодек

  1. Реализуйте класс декодера уровня контейнера и класс декодера уровня кадров, который предоставляет необходимые интерфейсы WIC для декодирования изображений и итерации по блокам метаданных. Это позволяет всем приложениям на основе WIC взаимодействовать с кодеком так же, как они взаимодействуют с стандартными форматами изображений.
  2. Реализуйте класс кодировщика уровня контейнера и класс кодировщика на уровне кадров, который предоставляет необходимые интерфейсы WIC для кодирования изображений и сериализации блоков метаданных в файл изображения.
  3. Если ваш формат контейнера не основан на контейнере TIFF или JPEG, может потребоваться написать обработчики метаданных для общих форматов метаданных (EXIF, XMP). Однако, если используется формат контейнера на основе TIFF или JPEG, это необязательно, так как можно делегировать обработчики метаданных, предоставляемых системой.
  4. Внедрите уникальный идентифицирующий шаблон (рекомендуется GUID) во всех файлах изображений. Это позволяет сопоставить формат изображения с кодеком во время обнаружения. При написании оболочки WIC для существующего формата изображения необходимо найти шаблон битов, который кодировщик всегда записывает в свои файлы изображений, уникальные для этого формата изображений, и использовать его в качестве идентифицирующего шаблона.)
  5. Зарегистрируйте кодек во время установки. Это позволяет обнаружить кодек во время выполнения, сопоставляя идентифицирующий шаблон в реестре с шаблоном, внедренным в файл изображения.
  6. Начиная с Windows 7, компонент WIC требует, чтобы кодеки применялись к типу подразделения COM «both». Это означает, что необходимо выполнить соответствующую блокировку для обработки вызывающих объектов и вызывающих потоков в многопоточных сценариях. Дополнительные сведения см. в следующем разделе о поддержке многопоточного подразделения.
  7. Поддержка 64-разрядных платформ. для Windows 7 компонент WIC потребует, чтобы кодеки сторонних производителей были доставлены как с 32, так и с 64-битным собственным двоичным кодом. Кроме того, 32-разрядная форма должна устанавливаться и работать на 64-разрядных системах, а установщик стороннего производителя Windows 7 должен установить как 32-разрядные, так и 64-разрядные двоичные файлы в 64-разрядных системах.

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

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

Оцените статью