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

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

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

IWICBitmapEncoder::CreateNewFrame

IWICPlanarBitmapFrameEncode