Пример #1
0
        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
        }
Пример #2
0
 /// <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