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


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