Метод IWICBitmapSource::CopyPixels (wincodec.h)
Указывает объекту на создание пикселей.
Синтаксис
HRESULT CopyPixels(
[in] const WICRect *prc,
[in] UINT cbStride,
[in] UINT cbBufferSize,
[out] BYTE *pbBuffer
);
Параметры
[in] prc
Тип: const WICRect*
Прямоугольник для копирования. Значение NULL указывает все растровое изображение.
[in] cbStride
Тип: UINT
Шаг растрового рисунка
[in] cbBufferSize
Тип: UINT
Размер буфера.
[out] pbBuffer
Тип: BYTE*
Указатель на буфер.
Возвращаемое значение
Тип: HRESULT
Если этот метод завершается успешно, он возвращает S_OK. В противном случае возвращается код ошибки HRESULT .
Комментарии
CopyPixels является одним из двух main подпрограмм обработки изображений (другой — Lock), запускающих фактическую обработку. Он предписывает объекту создавать пиксели в соответствии с его алгоритмом. Это может включать декодирование части JPEG, хранящейся на диске, копирование блока памяти или даже аналитическое вычисление сложного градиента. Алгоритм полностью зависит от объекта, реализуя интерфейс .
Вызывающий объект может ограничить операцию интересующим прямоугольником (ROI) с помощью параметра prc. Вложенный прямоугольник ROI должен быть полностью содержаться в границах растрового изображения. Если указать значение NULL ROI, необходимо вернуть все растровое изображение.
Вызывающий объект управляет управлением памятью и должен предоставить выходной буфер (pbBuffer) для результатов копирования вместе с границами буфера (cbBufferSize). Параметр cbStride определяет количество байтов между двумя вертикально смежными пикселями в выходном буфере. Вызывающий объект должен убедиться в наличии достаточного буфера для завершения вызова на основе ширины, высоты и формата пикселей растрового изображения и вложенного прямоугольника, предоставленного методу копирования.
Если вызывающему объекту необходимо выполнить многочисленные копии дорогостоящего объекта IWICBitmapSource , например JPEG, рекомендуется сначала создать IWICBitmap в памяти.
Примечания разработчика кодека
Вызываемый объект должен выполнять запись только в первую (prc-Width>*bitsperpixel+7)/8 байт каждой строки выходного буфера (в этом случае строка представляет собой последовательную строку cbStride байтов).Требования
Минимальная версия клиента | Windows XP с пакетом обновления 2 (SP2), Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | wincodec.h |
Библиотека | Windowscodecs.lib |
DLL | Windowscodecs.dll |