Метод 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 |