Метод IWICPlanarBitmapFrameEncode::WritePixels (wincodec.h)
Записывает строки из исходных плоскостей в закодированный формат.
Синтаксис
HRESULT WritePixels(
UINT lineCount,
[in] WICBitmapPlane *pPlanes,
UINT cPlanes
);
Параметры
lineCount
Тип: UINT
Число кодируемых строк. См. раздел Примечания об ограничениях количества строк в формате WIC Jpeg.
[in] pPlanes
Тип: WICBitmapPlane*
Задает исходные буферы для каждого закодированного уровня компонентов.
cPlanes
Тип: UINT
Количество плоскостей компонентов, заданных параметром pPlanes .
Возвращаемое значение
Тип: HRESULT
Если плоскости и исходный прямоугольник не соответствуют требованиям, этот метод завершается сбоем с WINCODEC_ERR_IMAGESIZEOUTOFRANGE.
Если формат IWICBitmapSource не соответствует требованиям кодировщика, этот метод завершается сбоем с WINCODEC_ERR_UNSUPPORTEDPIXELFORMAT.
Комментарии
Предполагается, что последовательные вызовы WritePixels последовательно добавляют линии сканирования к выходному изображению. IWICBitmapFrameEncode::Initialize, IWICBitmapFrameEncode::SetSize и IWICBitmapFrameEncode::SetPixelFormat должны быть вызваны до того, как этот метод завершится ошибкой.
Поддерживаемые планарные форматы определяют формат чередуемых пикселей, заданный с помощью IWICBitmapFrameEncode::SetPixelFormat , и параметры кодирования, относящиеся к кодеку.
Кодировщик WIC JPEG: QueryInterface можно использовать для получения этого интерфейса из реализации WIC JPEG IWICBitmapFrameEncode . При использовании этого метода для кодирования данных Y'CbCr с помощью кодировщика WIC JPEG можно настроить подсемплинг хрома с помощью параметров кодировщика во время создания кадра. Дополнительные сведения см. в разделах Общие сведения о кодировке и IWICBitmapEncoder::CreateNewFrame .
В зависимости от настроенной подсбалмизации chroma параметр lineCount имеет следующие ограничения.
Chroma Subsampling | Ограничение количества строк | Ширина плоскости хрома | Высота плоскости хрома |
---|---|---|---|
4:2:0 | Кратно 2, если вызов не охватывает последнюю линию сканирования изображения | lumaWidth / 2 округляется до ближайшего целого числа. | lumaHeight / 2 округляется до ближайшего целого числа. |
4:2:2 | Любой | lumaWidth / 2 округляется до ближайшего целого числа. | Любой |
4:4:4 | Любой | Любой | Любой |
4:4:0 | Кратно 2, если вызов не охватывает последнюю линию сканирования изображения | Любой | 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 |