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


Метод CBaseControlVideo.CopyImage

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует использовать в новом коде MediaPlayer, IMFMediaEngine и аудио/видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Создает копию образа в памяти.

Синтаксис

HRESULT CopyImage(
   IMediaSample    *pMediaSample,
   VIDEOINFOHEADER *pVideoInfo,
   LONG            *pBufferSize,
   BYTE            *pVideoImage,
   RECT            *pSourceRect
);

Параметры

pMediaSample

Указатель на образец, содержащий видеоиним.

pVideoInfo

Указатель на формат, представляющий изображение видео.

pBufferSize

Указатель на размер выходного буфера.

pVideoImage

Указатель на выходной буфер.

pSourceRect

Указатель на прямоугольник исходного видео.

Возвращаемое значение

Если параметр pVideoImage имеет значение NULL, параметр pBufferSize заполняется количеством байтов, необходимых выходному буферу для хранения изображения. Если переданный буфер слишком мал или функции-члену не удается выделить достаточный объем памяти, функция-член возвращает E_OUTOFMEMORY.

Комментарии

Функция-член извлекает изображение из примера и копирует его в выходной буфер. Раздел видео, скопированный в выходной буфер, отражает исходный прямоугольник, заданный через интерфейс IBasicVideo (хотя он не отражает целевой прямоугольник).

Требования

Требование Значение
Заголовок
Ctlutil.h (включая Streams.h)
Библиотека
Strmbase.lib (розничные сборки);
Strmbasd.lib (отладочные сборки)

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

Класс CBaseControlVideo