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


Метод IWICPlanarBitmapFrameEncode::WriteSource (wincodec.h)

Записывает строки из исходных плоскостей в закодированный формат.

Синтаксис

HRESULT WriteSource(
  [in] IWICBitmapSource **ppPlanes,
       UINT             cPlanes,
       WICRect          *prcSource
);

Параметры

[in] ppPlanes

Тип: IWICBitmapSource**

Задает массив IWICBitmapSource , представляющий плоскости изображений.

cPlanes

Тип: UINT

Число плоскостей компонентов, заданное параметром planes.

prcSource

Тип: WICRect*

Исходный прямоугольник пикселей для кодирования из плоскостей IWICBitmapSource . Значение NULL указывает на весь источник. Ширина исходного прямоугольника должна соответствовать ширине, заданной с помощью SetSize. Повторяющиеся вызовы WriteSource могут выполняться при условии, что общая совокупная высота исходного прямоугольника совпадает с заданной с помощью SetSize.

Возвращаемое значение

Тип: HRESULT

Если плоскости и исходный прямоугольник не соответствуют требованиям, этот метод завершается сбоем с WINCODEC_ERR_IMAGESIZEOUTOFRANGE.

Если формат IWICBitmapSource не соответствует требованиям кодировщика, этот метод завершается сбоем с WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT.

Комментарии

Предполагается, что последовательные вызовы WriteSource последовательно добавляют линии сканирования к выходному изображению. IWICBitmapFrameEncode::Initialize, IWICBitmapFrameEncode::SetSize и IWICBitmapFrameEncode::SetPixelFormat должны быть вызваны до того, как этот метод завершится ошибкой.

Поддерживаемые планарные форматы определяют формат чередуемых пикселей, заданный с помощью IWICBitmapFrameEncode::SetPixelFormat , и параметры кодирования, относящиеся к кодеку.

Кодировщик WIC JPEG: QueryInterface можно использовать для получения этого интерфейса из реализации WIC JPEG IWICBitmapFrameEncode . При использовании этого метода для кодирования данных Y'CbCr с помощью кодировщика WIC JPEG можно настроить подсемплинг хрома с помощью параметров кодировщика во время создания кадра. Дополнительные сведения см. в разделах Общие сведения о кодировке и IWICBitmapEncoder::CreateNewFrame .

В зависимости от настроенной подсбалмизации chroma параметр lineCount имеет следующие ограничения.

Chroma Subsampling Координата X Координата Y Ширина хрома Высота хрома
4:2:0 Кратно 2 Кратно 2 lumaWidth / 2 округляется до ближайшего целого числа. lumaHeight / 2 округляется до ближайшего целого числа.
4:2:2 Кратно 2 Любой lumaWidth / 2 округляется до ближайшего целого числа. Любой
4:4:4 Любой Любой Любой Любой
4:4:0 Любой Кратно 2 lumaWidth llumaHeight / 2 округляется до ближайшего целого числа.
 

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

Кроме того, если формат пикселей задан с помощью IWICBitmapFrameEncode::SetPixelFormat, он должен быть GUID_WICPixelFormat24bppBGR.

Ниже перечислены поддерживаемые форматы пикселей для источников растровых изображений, передаваемых в этот метод.

Число плоскостей Плоскость 1 Плоскость 2 Плоскость 3
3 GUID_WICPixelFormat8bppY GUID_WICPixelFormat8bppCb GUID_WICPixelFormat8bppCr
2 GUID_WICPixelFormat8bppY GUID_WICPixelFormat16bppCbCr Н/Д

Требования

   
Минимальная версия клиента Windows 8.1 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2012 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header wincodec.h
Библиотека Windowscodecs.lib
DLL Windowscodecs.dll

См. также раздел

Общие сведения о кодировке

IWICBitmapEncoder::CreateNewFrame

IWICPlanarBitmapFrameEncode