Exemplo n.º 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
        }
Exemplo n.º 2
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
        }