Biblioteki C/C++
AVIStreamWrite
[funkcja] Zapisuje dane do podanego strumienia.Składnia
#include <vfw.h>
STDAPI AVIStreamWrite(
PAVISTREAM pavi,
LONG lStart,
LONG lSamples,
LPVOID lpBuffer,
LONG cbBuffer,
DWORD dwFlags,
LONG * plSampWritten,
LONG * plBytesWritten
);
Argumenty
Zwracana wartość
Funkcja zwraca 0, jeśli jej działanie skończyło się pomyślnie, lub kod błędu w przeciwnym wypadku
Opis szczegółowy
Funkcja
AVIStreamWrite zapisuje dane do podanego strumienia.
IAVIFile * pfile;
IAVIStream * ps;
HBITMAP hbm;
DIBSECTION dibs;
int sbm = GetObject( hbm, sizeof( dibs ), & dibs );
if( sbm != sizeof( DIBSECTION ) )
{
}
AVIFileInit();
HRESULT hr = AVIFileOpen( & pfile, "plik.avi", OF_WRITE | OF_CREATE, NULL );
AVISTREAMINFO strhdr;
ZeroMemory( & strhdr, sizeof( strhdr ) );
strhdr.fccType = streamtypeVIDEO;
strhdr.fccHandler = 0;
strhdr.dwScale = 1000;
strhdr.dwRate = 1000;
strhdr.dwSuggestedBufferSize = dibs.dsBmih.biSizeImage;
SetRect( & strhdr.rcFrame, 0, 0, dibs.dsBmih.biWidth, dibs.dsBmih.biHeight );
hr = AVIFileCreateStream( pfile, & ps, & strhdr );
if( hr != AVIERR_OK )
{
}
AVICOMPRESSOPTIONS acopts;
IAVIStream * psCompressed;
ZeroMemory( & acopts, sizeof( acopts ) );
acopts.fccHandler = mmioFOURCC( 'D', 'I', 'B', ' ' );
hr = AVIMakeCompressedStream( & psCompressed, ps, & acopts, NULL );
if( hr != AVIERR_OK )
{
}
hr = AVIStreamSetFormat( psCompressed, 0, & dibs.dsBmih, dibs.dsBmih.biSize + dibs.dsBmih.biClrUsed * sizeof( RGBQUAD ) );
if( hr != AVIERR_OK )
{
}
int numer_klatki = 0;
hr = AVIStreamWrite( psCompressed, numer_klatki, 1, dibs.dsBm.bmBits, dibs.dsBmih.biSizeImage, AVIIF_KEYFRAME, NULL, NULL );
if( hr != AVIERR_OK )
{
}
numer_klatki++;
AVIStreamRelease( psCompressed );
AVIStreamRelease( ps );
AVIFileRelease( pfile );
AVIFileExit();
Jeśli nie będzie żadnych błędów, po wykonaniu tego kodu plik plik.avi będzie zawierał 1-sekundowy film przedstawiający załadowaną bitmapę.
Wymagania
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.