public const int BMP_MAGIC_COOKIE = 19778; //ascii string "BM" /*// <summary> /// 指定されたBITMAP型変数の情報ヘッダーをファイルに書き込みます. /// </summary> /// <param name="bmp"></param> /// <param name="fp"></param> public static void bmpWriteInfoHeader( BITMAPINFOHEADER infoHeader, BinaryWriter stream ) { //type(INFO_HEADER), intent(in) :: infoHeader //type(FILE), intent(inout) :: fp Util.WriteDWORD( (uint)infoHeader.biSize, stream ); Util.WriteDWORD( (uint)infoHeader.biWidth, stream ); Util.WriteDWORD( (uint)infoHeader.biHeight, stream ); Util.WriteWORD( (ushort)infoHeader.biPlanes, stream ); Util.WriteWORD( (ushort)(infoHeader.biBitCount), stream ); Util.WriteDWORD( (uint)infoHeader.biCompression, stream ); Util.WriteDWORD( (uint)infoHeader.biSizeImage, stream ); Util.WriteDWORD( (uint)infoHeader.biXPelsPerMeter, stream ); Util.WriteDWORD( (uint)infoHeader.biYPelsPerMeter, stream ); Util.WriteDWORD( (uint)infoHeader.biClrUsed, stream ); Util.WriteDWORD( (uint)infoHeader.biClrImportant, stream ); }*/ /// <summary> /// ファイルにAVIStreamHeader構造体の値を書き込みます /// </summary> public static void aviWriteStreamHeader( AVIStreamHeader streamHeader, MainAVIHeader mainHeader, BinaryWriter stream ) { //type(AVI_CONTAINER), intent(inout) :: avi Util.fwrite( "strh", stream ); Util.WriteDWORD( 56, stream );// call bmpQWordWrite( 56, avi%fp ) !// AVIStreamHeaderのサイズ //fwrite( streamHeader.fccType, fp );// i = fwrite( avi%streamHeader%fccType, 1, 4, avi%fp ) Util.WriteDWORD( (uint)streamHeader.fccType, stream ); //fwrite( streamHeader.fccHandler, fp );// i = fwrite( streamHeader.fccHandler, 1, 4, fp ); Util.WriteDWORD( (uint)streamHeader.fccHandler, stream ); //WriteDWORD( 0, fp ); Util.WriteDWORD( streamHeader.dwFlags, stream ); //WriteDWORD( streamHeader.dwReserved1, fp ); Util.WriteWORD( 0, stream );//wPriority Util.WriteWORD( 0, stream );//wLanghage Util.WriteDWORD( streamHeader.dwInitialFrames, stream ); Util.WriteDWORD( streamHeader.dwScale, stream ); Util.WriteDWORD( streamHeader.dwRate, stream ); Util.WriteDWORD( streamHeader.dwStart, stream ); Util.WriteDWORD( streamHeader.dwLength, stream ); Util.WriteDWORD( streamHeader.dwSuggestedBufferSize, stream ); Util.WriteDWORD( streamHeader.dwQuality, stream ); Util.WriteDWORD( streamHeader.dwSampleSize, stream ); Util.WriteWORD( 0, stream );//left Util.WriteWORD( 0, stream );//top Util.WriteWORD( (ushort)mainHeader.dwWidth, stream );//right Util.WriteWORD( (ushort)mainHeader.dwHeight, stream );//bottom }
/// <summary> /// ファイルにMainAviHeader構造体の値を書き込みます /// </summary> public static void aviWriteMainHeader( MainAVIHeader mainHeader, BinaryWriter stream ) { //type(AVI_CONTAINER), intent(inout) :: avi Util.fwrite( "avih", stream );// i = fwrite( 'avih', 1, 4, avi%fp ) Util.WriteDWORD( 56, stream ); // MainAVIHeaderのサイズ Util.WriteDWORD( mainHeader.dwMicroSecPerFrame, stream ); Util.WriteDWORD( 0/*this.mainHeader.dwMaxBytesPerSec*/, stream ); Util.WriteDWORD( mainHeader.dwReserved1, stream ); Util.WriteDWORD( mainHeader.dwFlags, stream ); Util.WriteDWORD( mainHeader.dwTotalFrames, stream ); Util.WriteDWORD( mainHeader.dwInitialFrames, stream ); Util.WriteDWORD( mainHeader.dwStreams, stream ); Util.WriteDWORD( 0/*this.mainHeader.dwSuggestedBufferSize*/, stream ); Util.WriteDWORD( mainHeader.dwWidth, stream ); Util.WriteDWORD( mainHeader.dwHeight, stream ); Util.WriteDWORD( mainHeader.dwScale, stream ); Util.WriteDWORD( mainHeader.dwRate, stream ); Util.WriteDWORD( mainHeader.dwStart, stream ); Util.WriteDWORD( mainHeader.dwLength, stream ); }//end subroutine