NSDAVI メンバ

AVIファイルの作成、ビデオストリームから画像ファイルの作成をします。
※処理データと使用環境にインストールされているコーデックによっては関数が失敗する場合があります。


●コンストラクタ

名前 説明
NSDAVI NSDAVIを初期化します。
NSDAVI.NSD_AVI NSD_AVIを初期化します。

●プロパティの一覧

名前 説明
AVICreateCheckHic AVIファイル作成時にコンプレッサハンドルの確認を行うかの設定を行います。
AVICreatePic4Multiple AVIファイル作成時に画像の幅、高さを4の倍数に合わせるかの設定を行います。
JpegQuality JPEGファイル作成時の品質を設定します。
TiffCompression TIFFファイル作成時の圧縮種類を設定します。
TmpBmpFileSelectPixcelFormat 一時ファイルで作成するビットマップのPixcelFormatを指定するかを設定します。
TmpBmpFilePixcelFormat 一時ファイルで作成するビットマップのPixcelFormatを設定します。
IsProcess32 32ビットのプロセスで実行されているかを返します。

●メソッドの一覧

名前 引数 戻り値 説明
Dispose なし なし リソースの解放を行います。
※終了時に必ず呼び出します。

(内部でCls_Dispose()を呼び出しています。終了処理でCls_Dispose()を呼び出している場合は、呼び出す必要はありません。)

Cls_Dispose なし なし リソースの解放を行います。
※終了時に必ず呼び出します。

(終了処理でDispose()を呼び出している場合は、呼び出す必要はありません。)

AVIInit なし なし AVIFileライブラリを初期化します。
※AVIExitを呼び出した後に初期化、終了関数以外を呼び出す場合は、AVIInitを他の関数を呼び出す前に呼び出してください。
AVIExit なし なし AVIFileライブラリを終了します。
GetAVIFileInfo ( String , AVI_FILEINFO ) Boolean型 AVIファイル情報を取得します。
GetAVIStremInfo ( String , AVI_STREAMINFO , IC_INFO ) Boolean型 ビデオストリーム情報を取得します。
( String , AVI_STREAMINFO , IC_INFO , STREAM_TYPE ) Boolean型 AVIファイルのストリーム情報を取得します。
GetTypeName ( Int32 ) String型 ストリームのタイプを変換します。
GetAVIToBMPCount ( String ) Integer型 AVIファイルからビデオストリームの長さを取得します。
GetCompressionList なし IC_INFO()型 ビデオコーデックのリストを返します。
GetAVIToPicture ( String , String , String , Integer , PICTURE_SAVE_STYLE) Boolean型 AVIファイルから全フレームを指定画像形式のファイルにします。
( String , String , Integer , String , PICTURE_SAVE_STYLE ) Boolean型 AVIファイルから指定フレームを指定画像形式のファイルにします。
( String , String , Integer , Integer , Integer , String , PICTURE_SAVE_STYLE ) Boolean型
GetDefaultAVISTREAMINFO なし AVI_STREAMINFO ストリーム情報用の構造体を初期化します。
SetPictureToAVI ( String , PICTURE_SAVE_STYLE , String , AVI_STREAMINFO ) Boolean型 画像ファイルからAVIファイルを圧縮なしで作成します。
( String , PICTURE_SAVE_STYLE , String , AVI_STREAMINFO , Boolean ) Boolean型 画像ファイルからAVIファイルを圧縮なしで作成します(毎回画像ファイル情報からストリームフォーマットをセットします。)。
( IntPtr , String , PICTURE_SAVE_STYLE , String , AVI_STREAMINFO ) Boolean型 画像ファイルからAVIファイルを圧縮オプション用ダイアログを表示して作成します。
( IntPtr , String , PICTURE_SAVE_STYLE , String , AVI_STREAMINFO , Boolean ) Boolean型 画像ファイルからAVIファイルを圧縮オプション用ダイアログを表示して作成します(毎回画像ファイル情報からストリームフォーマットをセットします。)。
( String , PICTURE_SAVE_STYLE , String , AVI_STREAMINFO , COMPVARS ) Boolean型 画像ファイルからAVIファイルを圧縮オプションを指定して作成します。
( String , PICTURE_SAVE_STYLE , String , AVI_STREAMINFO , COMPVARS , Boolean ) Boolean型 画像ファイルからAVIファイルを圧縮オプションを指定して作成します(毎回画像ファイル情報からストリームフォーマットをセットします。)。
GetCompressOptions ( IntPtr , ICMF_CHOOSE , COMPVARS , [String] ) Boolean型 圧縮オプションを設定します。
※CompressOptionsFreeで必ずリソースを解放してください。
CompressOptionsFree ( COMPVARS ) Boolean型 GetCompressOptionsで使用したリソースを解放します。
IsOkCompressOptions ( COMPVARS ) Boolean型 圧縮オプションがSetPictureToAVIで使用できるかを確認します。
※コーデックのハンドル、コンプレッサ情報、サイズ指定の確認、品質の確認、フラグの確認を行います。
UnionVideoAviAndWave ( String , String , String ) Boolean型 ビデオ用AVIファイルとオーディオ用Waveファイルを結合します。
GetErrorNo なし ErrorNo エラー番号を返します。
GetErrorMsg なし String型 エラーメッセージを返します。

●イベントの一覧

名前 引数 戻り値 説明
GetAVIPictureState ( Integer , Integer , Boolean ) なし GetAVIPictureで1件データを読み込む前に発生するイベント。
SetPictureToAVIState ( Integer , Boolean ) なし SetPictureToAVIで1件データを書き込む前に発生するイベント。

●構造体の一覧

名前:RECT

構文:

Public Structure RECT
  Dim Left As Int32
  Dim Top As Int32
  Dim Right As Int32
  Dim Bottom As Int32
End Structure

内容:矩形範囲。

名前 説明
Left Int32 Left。
Top Int32 Top。
Right Int32 Right。
Bottom Int32 Bottom。

 

名前:AVI_FILEINFO

構文:

Public Structure AVI_FILEINFO
  Private Const CstIntPrv_FileTypeSize As Integer = 64

  Dim dwMaxBytesPerSec As Int32
  Dim dwFlags As Int32
  Dim dwCaps As Int32
  Dim dwStreams As Int32
  Dim dwSuggestedBufferSize As Int32
  Dim dwWidth As Int32
  Dim dwHeight As Int32
  Dim dwScale As Int32
  Dim dwRate As Int32
  Dim dwLength As Int32
  Dim dwEditCount As Int32
  <VBFixedString(CstIntPrv_FileTypeSize), MarshalAs(UnmanagedType.ByValTStr, SizeConst:=CstIntPrv_FileTypeSize)>; _
  Dim szFileType As String
End Structure

内容:AVIファイル情報。

名前 説明
dwMaxBytesPerSec Int32 近似の最大レート。
dwFlags Int32 アプリケーションフラグ。
dwCaps Int32 機能フラグ。
dwStreams Int32 ストリーム数。
dwSuggestedBufferSize Int32 ファイル読込の適正バッファサイズ。
dwWidth Int32 ビットマップの幅。
dwHeight Int32 ビットマップの高さ。
dwScale Int32 ファイルの時間単位。
dwRate Int32 ファイルのレート。
dwLength Int32 ファイルの長さ。
dwEditCount Int32 ファイルの編集回数。
szFileType String ファイルタイプの説明。

 

名前:AVI_STREAMINFO

構文:

Public Structure AVI_STREAMINFO
  Private Const CstIntPrv_NameSize As Integer = 64

  Dim dwfccType As Int32
  Dim dwfccHandler As Int32
  Dim dwFlags As Int32
  Dim dwCaps As Int32
  Dim wPriority As Int16
  Dim wLanguage As Int16
  Dim dwScale As Int32
  Dim dwRate As Int32
  Dim dwStart As Int32
  Dim dwLength As Int32
  Dim dwInitialFrames As Int32
  Dim dwSuggestedBufferSize As Int32
  Dim dwQuality As Int32
  Dim dwSampleSize As Int32
  Dim rcFrame As RECT
  Dim dwEditCount As Int32
  Dim dwFormatChangeCount As Int32
  <VBFixedString(CstIntPrv_NameSize), MarshalAs(UnmanagedType.ByValTStr, SizeConst:=CstIntPrv_NameSize)> _
  Dim szName As String
End Structure

内容:AVIストリーム情報。

名前 説明
dwfccType Int32 ストリームのタイプ。
streamtypeAUDIO: オーディオストリーム。
streamtypeMIDI   : MIDIストリーム。
streamtypeTEXT  : テキストストリーム。
streamtypeVIDEO : ビデオストリーム。
dwfccHandler Int32 ビデオストリームを保存する圧縮ハンドラ。
dwFlags Int32 ストリームフラグ。
dwCaps Int32 機能フラグ。
wPriority Int16 ストリームの優先順位。
wLanguage Int16 ストリームの言語。
dwScale Int32 ストリームの時間単位。
dwRate Int32 ストリームのレート。
dwStart Int32 AVIファイルの最初のサンプル番号。
dwLength Int32 ストリームの長さ。
dwInitialFrames Int32 ビデオストリームとオーディオストリームをどの程度すらすかを指定。
dwSuggestedBufferSize Int32 ストリームを読み込むときに適したバッファサイズ。
dwQuality Int32 ビデオストリームの品質(0〜10000) -1:デフォルト。
dwSampleSize Int32 1データサンプルのバイト数。
rcFrame RECT 表示を行う矩形。
dwEditCount Int32 ファイルを編集した回数。
dwFormatChangeCount Int32 フォーマットの変更回数。
szName String ストリームの説明。

 

名前:IC_INFO

構文:

Public Structure IC_INFO
  Private Const CstIntPrv_NameSize As Integer = 16
  Private Const CstIntPrv_DescriptionSize As Integer = 128
  Private Const CstIntPrv_DriverSize As Integer = 128

  Dim dwSize As Int32
  Dim fccType As Int32
  Dim fccHandler As Int32
  Dim dwFlags As Int32
  Dim dwVersion As Int32
  Dim dwVersionICM As Int32
  <VBFixedString(CstIntPrv_NameSize), MarshalAs(UnmanagedType.ByValTStr, SizeConst:=CstIntPrv_NameSize)> _
  Dim szName As String
  <VBFixedString(CstIntPrv_DescriptionSize), MarshalAs(UnmanagedType.ByValTStr, SizeConst:=CstIntPrv_DescriptionSize)> _
  Dim szDescription As String
  <VBFixedString(CstIntPrv_DriverSize), MarshalAs(UnmanagedType.ByValTStr, SizeConst:=CstIntPrv_DriverSize)> _
  Dim szDriver As String
End Structure

内容:コンプレッサの情報。

名前 説明
dwSize Int32 サイズ。
fccType Int32 ストリームのタイプ。
fccHandler Int32 圧縮ハンドラ。
dwFlags Int32 フラグ。
dwVersion Int32 ドライバーのバージョン番号。
dwVersionICM Int32 ドライバーでサポートされるVCMのバージョン番号。
szName String 圧縮プログラムの短い名前。
szDescription String 圧縮プログラムの長い名前。
szDriver String VCM圧縮ドライバを含むモジュールの名前。

 

名前:COMPVARS

構文:

Public Structure COMPVARS
  Dim cbSize As Int32
  Dim dwFlags As Int32
  Dim hic As IntPtr
  Dim fccType As Int32
  Dim fccHandler As Int32
  Dim lpbiIn As IntPtr
  Dim lpbiOut As IntPtr
  Dim lpBitsOut As IntPtr
  Dim lpBitsPrev As IntPtr
  Dim lFrame As Int32
  Dim lKey As Int32
  Dim lDataRate As Int32
  Dim lQ As Int32
  Dim lKeyCount As Int32
  Dim lpState As IntPtr
  Dim cbState As Int32
End Structure

内容:圧縮情報。

名前 説明
cbSize Int32 サイズ。
dwFlags Int32 0またはICMF_COMPVARS_VALIDを指定します。
hic IntPtr コーデックのハンドル。
fccType Int32 ICTYPE_VIDEOまたは0を指定します。
fccHandler Int32 圧縮ハンドラ。
lpbiIn IntPtr 予約。
lpbiOut IntPtr 出力フォーマット。
lpBitsOut IntPtr 予約。
lpBitsPrev IntPtr 予約。
lFrame Int32 予約。
lKey Int32 キーフレーム。
lDataRate Int32 データレート。
lQ Int32 品質。
lKeyCount Int32 予約。
lpState IntPtr 予約。
cbState Int32 予約。

●定数の一覧

名前:ErrorNo (エラー番号)
名前 内容
NoErr エラーなし。
AVIFileOpenError AVIファイルがオープンできません。
NoCreateFile ファイルが作成できません。
NoCreateAVIFile AVIファイルが作成できません。
ReadFileErr ファイルが読み込めません。
NoAVIFileName AVIファイル名が指定されていません。
NoPictureFileName 画像ファイル名が指定されていません。
NoVideoAVIFileName Video用のAVIファイル名が指定されていません。
NoWaveFileName オーディオ用のWaveファイル名が指定されていません。
NoVideAVIFileOpen Video用AVIファイルがオープンできません。
NoWaveFileOpen オーディオ用Waveファイルがオープンできません。
NoSaveFolder 保存フォルダがありません。
NoConvertImage 指定イメージに変換できません。
NoConvertJPEG JPEGに変換できません。
NoConvertTIFF TIFFに変換できません。
NoConvertBMP ビットマップに変換できません。
NoAVIFileInfo AVIファイル情報が取得できません。
NoGetStream ストリームインターフェイスのアドレスが取得できません。
NoStreamInfo ストリーム情報を取得できません。
NoWaveStreamInfo Wave用ストリーム情報を取得できません。
NoOpenIC コンプレッサハンドルがオープンできません。
NoStreamGetFrameOpen ビデオフレームを解凍する準備ができません。
NoStreamGetFrame 圧縮されたビデオフレームのアドレスが取得できません。
NoImageSize イメージのサイズが取得できません。
NoCreateStream ストリームが作成できません。
NoWaveCreateStream Wave用ストリームが作成できません。
CancelSaveOptions ファイルの保存オプションでキャンセルが選択されました。
SaveOptionsErr ファイルの保存オプションでエラーが発生しました。
NoMakeCompressedStream 圧縮されたストリームの作成に失敗しました。
NoStreamSetFormat フォーマットが設定できません。
NoWaveStreamSetFormat Wave用フォーマットが設定できません。
NoStreamWrite ストリームの書き込みができません。
NoWaveStreamWrite Wave用ストリームの書き込みができません。
NoICCompressGetFormat 圧縮フォーマット情報が取得できません。
NoICSeqCompressFrameStart フレームシーケンスの圧縮が開始できません。
NoICSeqCompressFrameStart2 フレームシーケンスの圧縮が開始できません。
CancelICCompressorChoose コンプレッサを選択するダイアログでキャンセルが選択されました。
NoStreamReadFormatSize フォーマットデータの格納するサイズが取得できません。
NoWaveStreamReadFormatSize Wave用フォーマットデータの格納するサイズが取得できません。
NoStreamReadFormat フォーマットデータが取得できません。
NoWaveStreamReadFormat Wave用フォーマットデータが取得できません。
NoStreamReadSampleCount 読み込むサンプル数が取得できません。
NoWaveStreamReadSampleCount Wave用の読み込むサンプル数が取得できません。
NoStreamRead ストリームからデータの読み込みに失敗しました。
NoWaveStreamRead Wave用ストリームからデータの読み込みに失敗しました。
NoSeqCompressFrame フレームシーケンスの1つのフレームを圧縮できませんでした。
SelectStop 中止しました。
Err_ICDecompress 圧縮解除ができませんでした。
Err_ICDecompressQuery 圧縮解除の準備ができません。
Err_ICDecompressBegin 圧縮解除の準備ができません。
Err_ICDecompressQueryRetry 圧縮解除の準備ができません。
Err_ICDecompressBeginRetry 圧縮解除の準備ができません。
Err_ReadChunk RIFFの取得ができません。
UnKnownErr 不明なエラー。

 

名前:ICMF_CHOOSE (圧縮用フラグ)
名前 内容
KEYFRAME キーフレームの頻度を入力するためのチェックボックスとエディタボックスを表示します。
DATARATE ムービーのデータレートを入力するためのチェックボックスとエディタボックスを表示します。
PREVIEW プレビューウィンドウが入るようにダイアログボックスを展開するボタンを表示します。
プレビューウィンドウには、ムービーのフレームが現在の設定で圧縮された場合にどう見えるかが表示されます。
ALLCOMPRESSORS すべてのコンプレッサが選択リストに表示されます。
このフラグが指定されていない場合は、特定の入力形式を処理できるコンプレッサだけが選択リストに表示されます。

 

名前:PICTURE_SAVE_STYLE (画像ファイルの種類)
名前 内容
BMP ビットマップ。
JPEG jpeg。
GIF gif。
PNG png。
TIFF tiff。

 

名前:STREAM_TYPE (ストリームのタイプ)
名前 内容
TYPE_VIDEO Video。
TYPE_AUDIO Audio。
TYPE_MIDI Midi。
TYPE_TEXT Text。

 

名前:TIFF_COMPRESSION (TIFFの圧縮種類)
名前 内容
NoCompression 圧縮なし。
LZW LZW形式。

●NSDAVIコンストラクタの説明

構文:Public Sub New()

使用法:Dim ClsPrv_AVI As New NSDAVI

引数:なし。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

●NSDAVIプロパティの説明

名前:AVICreateCheckHic

構文:Public Property AVICreateCheckHic() As Boolean

機能:AVIファイル作成時にコンプレッサハンドルの確認を行うかの設定を行います。

引数:なし。

値:Boolean

値の説明:

True :AVIファイル作成時にコンプレッサハンドルが指定されていない場合は、コンプレッサを開きます。(既定値)
False:AVIファイル作成時にコンプレッサハンドルを確認しません。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            ' 画像ファイルのフォルダ。
            Dim Str_Folder As String = "" ' <- 画像ファイルフォルダのフルパス名。
            ' 作成AVIファイル。
            Dim Str_AviFileName As String = "" ' <- 作成AVIファイル名。
            ' ストリーム情報を初期化します。
            Dim Strc_AviStreamInfo As NSDAVI.AVI_STREAMINFO = ClsPrv_AVI.GetDefaultAVISTREAMINFO

            Do
                ' folderにあるファイルを取得する。
                Dim Str_PicFileList As String()
                Dim Str_ExName As String = "bmp"
                Dim Int_PicIndex As NSDAVI.PICTURE_SAVE_STYLE = NSDAVI.PICTURE_SAVE_STYLE.BMP

                Str_PicFileList = System.IO.Directory.GetFiles(Str_Folder, "*." & Str_ExName)
                If (Str_PicFileList Is Nothing) Then
                    MsgBox("画像ファイルが存在しません。")
                    Exit Do
                End If
                ' 画像ファイル名をソートします。
                Array.Sort(Str_PicFileList)

                ' 指定された圧縮オプションを使用します。
                Dim Int_IcmfChoose As NSDAVI.ICMF_CHOOSE
                Dim Strc_Compvars As NSDAVI.COMPVARS

                Int_IcmfChoose = NSDAVI.ICMF_CHOOSE.KEYFRAME Or NSDAVI.ICMF_CHOOSE.DATARATE
                ' 圧縮オプションを指定します。
                If ClsPrv_AVI.GetCompressOptions( Me.Handle, _
                                                  Int_IcmfChoose, _
                                                  Strc_Compvars, _
                                                  Str_PicFileList(0)) Then
                    ' GetCompressOptionsで設定されるので、コンプレッサハンドルの確認を行わない。
                    ClsPrv_AVI.AVICreateCheckHic = False
                    ' 画像ファイルからAVIファイルを作成します。
                    If ClsPrv_AVI.SetPictureToAVI(Str_PicFileList, _
                                                  Int_PicIndex, _
                                                  Str_AviFileName, _
                                                  Strc_AviStreamInfo, _
                                                  Strc_Compvars, _
                                                  True) Then
                        MsgBox("AVIファイルを作成しました。")
                    Else
                        MsgBox("AVIファイルの作成に失敗しました。")
                    End If
                    ' リソースを解放します。
                    ClsPrv_AVI.CompressOptionsFree(Strc_Compvars)
                End If
            Loop While (0)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:AVICreatePic4Multiple

構文:Public Property AVICreatePic4Multiple() As Boolean

機能:AVIファイル作成時に画像の幅、高さを4の倍数に合わせるかの設定を行います。

引数:なし。

値:Boolean

値の説明:

True :AVIファイル作成時に画像の幅、高さを4の倍数に合わせます。(既定値)
False:AVIファイル作成時に画像の幅、高さの調整を行いません。
    ※コーデックによっては幅、高さが4の倍数でない場合、再生時に正常に再生されない場合があります。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            Dim Str_Msg As String = ""
            Select Case ClsPrv_AVI.AVICreatePic4Multiple
                Case True
                    Str_Msg = "AVIファイル作成時に画像の幅、高さを4の倍数に合わせます。"
                Case False
                    Str_Msg = "AVIファイル作成時に画像の幅、高さの調整を行いません。"
            End Select
            MsgBox("作成時の幅、高さの調整:" & Str_Msg)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:JpegQuality

構文:Public Property JpegQuality() As Integer

機能:JPEGファイル作成時の品質を設定します。

引数:なし。

値:Integer

値の説明:

品質を設定、取得します。(既定値:80)

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            MsgBox("JPEG品質:" & Cstr(ClsPrv_AVI.JpegQuality))
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:TiffCompression

構文:Public Property TiffCompression() As TIFF_COMPRESSION

機能:TIFFファイル作成時の圧縮種類を設定します。

引数:なし。

値:TIFF_COMPRESSION

値の説明:

圧縮種類を設定、取得します。(既定値:TIFF_COMPRESSION.NoCompression)

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            Dim Str_Msg As String = ""
            Select Case ClsPrv_AVI.TiffCompression
                Case NSDAVI.TIFF_COMPRESSION.NoCompression
                    Str_Msg = "圧縮なし"
                Case NSDAVI.TIFF_COMPRESSION.LZW
                    Str_Msg = "LZW"
            End Select
            MsgBox("TIFFの圧縮:" & Str_Msg)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:TmpBmpFileSelectPixcelFormat

構文:Public Property TmpBmpFileSelectPixcelFormat() As Boolean

機能:一時ファイルで作成するビットマップのPixcelFormatを指定するかを設定します。

※一時ファイルでビットマップを作成する処理は下に示します。

  • ビットマップファイル以外をAVIファイルに変換する場合。
  • ビットマップファイル以外のファイルフォーマットでAVIファイルから画像ファイルを作成する場合。
  • AVIファイル作成時に幅、高さを4の倍数に合わせる場合。

引数:なし。

値:Boolean

値の説明:

True :PixcelFormatを指定します。
False:PixcelFormatを指定しません。(既定値)

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            Dim Str_Msg As String = ""
            Select Case ClsPrv_AVI.TmpBmpFileSelectPixcelFormat
                Case True
                    Str_Msg = "PixcelFormatを指定します。"
                Case False
                    Str_Msg = "PixcelFormatを指定しません。"
            End Select
            MsgBox("一時作成テンポラリーBMPファイルのPixcelFormat:" & Str_Msg)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:TmpBmpFilePixcelFormat

構文:Public Property TmpBmpFilePixcelFormat() As System.Drawing.Imaging.PixelFormat

機能: 一時ファイルで作成するビットマップのPixcelFormatを指定するかを設定します。

※一時ファイルでビットマップを作成する処理は下に示します。

  • ビットマップファイル以外をAVIファイルに変換する場合。
  • ビットマップファイル以外のファイルフォーマットでAVIファイルから画像ファイルを作成する場合。
  • AVIファイル作成時に幅、高さを4の倍数に合わせる場合。

引数:なし。

値:System.Drawing.Imaging.PixelFormat

値の説明:

System.Drawing.Imaging.PixelFormatを設定、取得します(既定値:Imaging.PixelFormat.Canonical)。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            MsgBox("一時作成テンポラリーBMPファイルのPixcelFormat:" & CStr(ClsPrv_AVI.TmpBmpFilePixcelFormat))
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:IsProcess32

構文:Public ReadOnly Property IsProcess32() AS Boolean

機能: 32ビットのプロセスで実行されているかを返します。

引数:なし。

値:Boolean

値の説明:

True :32bitプロセスで実行されています。
False:32bitプロセスで実行されていません。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            If ClsPrv_AVI.IsProcess32() Then
                MsgBox("32ビットプロセスで実行されています。")
            Else
                MsgBox("64ビットプロセスで実行されています。")
            End If
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

●NSDAVIメソッドの説明

名前:Dispose

構文:Public Overridable Sub Dispose() Implements IDisposable.Dispose

機能:リソースの解放を行います。

※終了時に必ず呼び出します。

(内部でCls_Dispose()を呼び出しています。終了処理でCls_Dispose()を呼び出している場合は、呼び出す必要はありません。)

引数:なし。

戻り値:なし。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:Cls_Dispose

構文:Public Sub Cls_Dispose()

機能:リソースの解放を行います。

※終了時に必ず呼び出します。

(終了処理でDispose()を呼び出している場合は、呼び出す必要はありません。)

引数:なし。

戻り値:なし。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:AVIInit

構文:Public Sub AVIInit()

機能:AVIFileライブラリを初期化します。

※AVIExitを呼び出した後に初期化、終了関数以外を呼び出す場合は、AVIInitを他の関数を呼び出す前に呼び出してください。

引数:なし。

戻り値:なし。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            ' AVIFileライブラリを初期化します。
            ClsPrv_AVI.AVIInit()

            Dim Str_FileName As String = "" ' <- AVIファイルのフルパス名。
            Dim Strc_AVIInfo As NSDAVI.AVI_FILEINFO = Nothing
            Dim Str_Msg As String = ""
            If ClsPrv_AVI.GetAVIFileInfo(Str_FileName, Strc_AVIInfo) Then
                With Strc_AVIInfo
                    Str_Msg &= "近似の最大レート:" & _
                               CStr(.dwMaxBytesPerSec) & ControlChars.CrLf
                    Str_Msg &= "アプリケーションフラグ:" _
                               & CStr(.dwFlags) & ControlChars.CrLf
                    Str_Msg &= "機能フラグ:" _
                               & CStr(.dwCaps) & ControlChars.CrLf
                    Str_Msg &= "ストリーム数:" _
                               & CStr(.dwStreams) & ControlChars.CrLf
                    Str_Msg &= "ファイル読込の適正バッファサイズ:" _
                               & CStr(.dwSuggestedBufferSize) & ControlChars.CrLf
                    Str_Msg &= "ビットマップの幅:" _
                               & CStr(.dwWidth) & ControlChars.CrLf
                    Str_Msg &= "ビットマップの高さ:" _
                               & CStr(.dwHeight) & ControlChars.CrLf
                    Str_Msg &= "ファイルの時間単位:" _
                               & CStr(.dwScale) & ControlChars.CrLf
                    Str_Msg &= "ファイルのレート:" _
                               & CStr(.dwRate) & ControlChars.CrLf
                    Str_Msg &= "ファイルの長さ:" _
                               & CStr(.dwLength) & ControlChars.CrLf
                    Str_Msg &= "ファイルの編集回数:" _
                               & CStr(.dwEditCount) & ControlChars.CrLf
                    Str_Msg &= "ファイルタイプの説明:" _
                               & .szFileType
                End With
            Else
                Str_Msg = "情報の取得に失敗しました。"
            End If
            ' AVIFileライブラリを終了します。
            ClsPrv_AVI.AVIExit()

            MsgBox(Str_Msg)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:AVIExit

構文:Public Sub AVIExit()

機能:AVIFileライブラリを終了します。

引数:なし。

戻り値:なし。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            ' AVIFileライブラリを初期化します。
            ClsPrv_AVI.AVIInit()

            Dim Str_FileName As String = "" ' <- AVIファイルのフルパス名。
            Dim Strc_AVIInfo As NSDAVI.AVI_FILEINFO = Nothing
            Dim Str_Msg As String = ""
            If ClsPrv_AVI.GetAVIFileInfo(Str_FileName, Strc_AVIInfo) Then
                With Strc_AVIInfo
                    Str_Msg &= "近似の最大レート:" & _
                               CStr(.dwMaxBytesPerSec) & ControlChars.CrLf
                    Str_Msg &= "アプリケーションフラグ:" _
                               & CStr(.dwFlags) & ControlChars.CrLf
                    Str_Msg &= "機能フラグ:" _
                               & CStr(.dwCaps) & ControlChars.CrLf
                    Str_Msg &= "ストリーム数:" _
                               & CStr(.dwStreams) & ControlChars.CrLf
                    Str_Msg &= "ファイル読込の適正バッファサイズ:" _
                               & CStr(.dwSuggestedBufferSize) & ControlChars.CrLf
                    Str_Msg &= "ビットマップの幅:" _
                               & CStr(.dwWidth) & ControlChars.CrLf
                    Str_Msg &= "ビットマップの高さ:" _
                               & CStr(.dwHeight) & ControlChars.CrLf
                    Str_Msg &= "ファイルの時間単位:" _
                               & CStr(.dwScale) & ControlChars.CrLf
                    Str_Msg &= "ファイルのレート:" _
                               & CStr(.dwRate) & ControlChars.CrLf
                    Str_Msg &= "ファイルの長さ:" _
                               & CStr(.dwLength) & ControlChars.CrLf
                    Str_Msg &= "ファイルの編集回数:" _
                               & CStr(.dwEditCount) & ControlChars.CrLf
                    Str_Msg &= "ファイルタイプの説明:" _
                               & .szFileType
                End With
            Else
                Str_Msg = "情報の取得に失敗しました。"
            End If
            ' AVIFileライブラリを終了します。
            ClsPrv_AVI.AVIExit()

            MsgBox(Str_Msg)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:GetAVIFileInfo

構文:Public Function GetAVIFileInfo( FileName , AVIInfo ) As Boolean

機能:AVIファイル情報を取得します。

引数:

名前 引数渡しの方法 説明
FileName String 値渡し(ByVal) AVIファイルのフルパス名を渡します。
AVIInfo AVI_FILEINFO 参照渡し(ByRef) ファイル情報を返します。

戻り値:Boolean

戻り値の説明:

True:成功 False:失敗

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            Dim Str_FileName As String = "" ' <- AVIファイルのフルパス名。
            Dim Strc_AVIInfo As NSDAVI.AVI_FILEINFO = Nothing
            Dim Str_Msg As String = ""
            If ClsPrv_AVI.GetAVIFileInfo(Str_FileName, Strc_AVIInfo) Then
                With Strc_AVIInfo
                    Str_Msg &= "近似の最大レート:" & _
                               CStr(.dwMaxBytesPerSec) & ControlChars.CrLf
                    Str_Msg &= "アプリケーションフラグ:" _
                               & CStr(.dwFlags) & ControlChars.CrLf
                    Str_Msg &= "機能フラグ:" _
                               & CStr(.dwCaps) & ControlChars.CrLf
                    Str_Msg &= "ストリーム数:" _
                               & CStr(.dwStreams) & ControlChars.CrLf
                    Str_Msg &= "ファイル読込の適正バッファサイズ:" _
                               & CStr(.dwSuggestedBufferSize) & ControlChars.CrLf
                    Str_Msg &= "ビットマップの幅:" _
                               & CStr(.dwWidth) & ControlChars.CrLf
                    Str_Msg &= "ビットマップの高さ:" _
                               & CStr(.dwHeight) & ControlChars.CrLf
                    Str_Msg &= "ファイルの時間単位:" _
                               & CStr(.dwScale) & ControlChars.CrLf
                    Str_Msg &= "ファイルのレート:" _
                               & CStr(.dwRate) & ControlChars.CrLf
                    Str_Msg &= "ファイルの長さ:" _
                               & CStr(.dwLength) & ControlChars.CrLf
                    Str_Msg &= "ファイルの編集回数:" _
                               & CStr(.dwEditCount) & ControlChars.CrLf
                    Str_Msg &= "ファイルタイプの説明:" _
                               & .szFileType
                End With
            Else
                Str_Msg = "情報の取得に失敗しました。"
            End If

            MsgBox(Str_Msg)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:GetAVIStremInfo

機能:AVIストリーム情報を取得します。

@ビデオストリーム情報を取得します。

構文:Public Overloads Function GetAVIStremInfo( FileName , AVIStremInfo , ICInfo ) As Boolean

引数:

名前 引数渡しの方法 説明
FileName String 値渡し(ByVal) AVIファイルのフルパス名を渡します。
AVIStremInfo AVI_STREAMINFO 参照渡し(ByRef) ストリーム情報を返します。
ICInfo IC_INFO 参照渡し(ByRef) 圧縮情報を返します。

戻り値:Boolean

戻り値の説明:

True:成功 False:失敗

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            Dim Str_FileName As String = "" ' <- AVIファイルのフルパス名。
            Dim Strc_AVIStremInfo As NSDAVI.AVI_STREAMINFO = Nothing
            Dim Strc_ICInfo As NSDAVI.IC_INFO = Nothing
            Dim Str_Msg As String = ""
            If ClsPrv_AVI.GetAVIStremInfo(Str_FileName, _
                                          Strc_AVIStremInfo, _
                                          Strc_ICInfo) Then
                With Strc_AVIStremInfo
                    Str_Msg &= "ストリーム情報" & ControlChars.CrLf
                    Str_Msg &= "ストリームのタイプ:" & _
                                CStr(.dwfccType) & "(" & _
                                ClsPrv_AVI.GetTypeName(.dwfccType) & ")" & ControlChars.CrLf
                    Str_Msg &= "ビデオストリームを保存する圧縮ハンドラ:" & _
                                CStr(.dwfccHandler) & "(" & _
                                ClsPrv_AVI.GetTypeName(.dwfccHandler) & ")" & ControlChars.CrLf
                    Str_Msg &= "ストリームフラグ:" & _
                                CStr(.dwFlags) & ControlChars.CrLf
                    Str_Msg &= "機能フラグ:" & _
                                CStr(.dwCaps) & ControlChars.CrLf
                    Str_Msg &= "ストリームの優先順位:" & _
                                CStr(.wPriority) & ControlChars.CrLf
                    Str_Msg &= "ストリームの言語:" & _
                                CStr(.wLanguage) & ControlChars.CrLf
                    Str_Msg &= "ストリームの時間単位:" & _
                                CStr(.dwScale) & ControlChars.CrLf
                    Str_Msg &= "ストリームのレート:" & _
                                CStr(.dwRate) & ControlChars.CrLf
                    Str_Msg &= "AVIファイルの最初のサンプル番号:" & _
                                CStr(.dwStart) & ControlChars.CrLf
                    Str_Msg &= "ストリームの長さ:" & _
                                CStr(.dwLength) & ControlChars.CrLf
                    Str_Msg &= "ビデオストリームとオーディオストリームをどの程度すらすかを指定:" & _
                                CStr(.dwInitialFrames) & ControlChars.CrLf
                    Str_Msg &= "ストリームを読み込むときに適したバッファサイズ:" & _
                                CStr(.dwSuggestedBufferSize) & ControlChars.CrLf
                    Str_Msg &= "ビデオストリームの品質:" & _
                                CStr(.dwQuality) & ControlChars.CrLf
                    Str_Msg &= "1データサンプルのバイト数:" & _
                                CStr(.dwSampleSize) & ControlChars.CrLf
                    Str_Msg &= "矩形Top:" & _
                                CStr(.rcFrame.Top) & ControlChars.CrLf
                    Str_Msg &= "矩形Left:" & _
                                CStr(.rcFrame.Left) & ControlChars.CrLf
                    Str_Msg &= "矩形Right:" & _
                                CStr(.rcFrame.Right) & ControlChars.CrLf
                    Str_Msg &= "矩形Bottom:" & _
                                CStr(.rcFrame.Bottom) & ControlChars.CrLf
                    Str_Msg &= "ファイルを編集した回数:" & _
                                CStr(.dwEditCount) & ControlChars.CrLf
                    Str_Msg &= "フォーマットの変更回数:" & _
                                CStr(.dwFormatChangeCount) & ControlChars.CrLf
                    Str_Msg &= "ストリームの説明:" & _
                                .szName & ControlChars.CrLf
                End With

                With Strc_ICInfo
                    Str_Msg &=  ControlChars.CrLf
                    Str_Msg &=  "圧縮情報" & ControlChars.CrLf
                    Str_Msg &=  "ドライバーのバージョン番号:" & _
                                CStr(.dwVersion) & ControlChars.CrLf
                    Str_Msg &=  "VCMのバージョン番号:" & _
                                CStr(.dwVersionICM) & ControlChars.CrLf
                    Str_Msg &=  "短い圧縮プログラム名:" & _
                                .szName & ControlChars.CrLf
                    Str_Msg &=  "長い圧縮プログラム名:" & _
                                .szDescription & ControlChars.CrLf
                    Str_Msg &=  "VCM圧縮ドライバ:" & _
                                .szDriver
                End With
            Else
                Str_Msg = "情報の取得に失敗しました。"
            End If
            MsgBox(Str_Msg)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

AAVIファイルのストリーム情報を取得します。

構文:Public Overloads Function GetAVIStremInfo( FileName , AVIStremInfo , IcInfo , StreamType ) As Boolean

引数:

名前 引数渡しの方法 説明
FileName String 値渡し(ByVal) AVIファイルのフルパス名を渡します。
AVIStremInfo AVI_STREAMINFO 参照渡し(ByRef) ストリーム情報を返します。
ICInfo IC_INFO 参照渡し(ByRef) 圧縮情報を返します。
StreamType STREAM_TYPE 値渡し(ByVal) 取得するストリームの種類を渡します。

戻り値:Boolean

戻り値の説明:

True:成功 False:失敗

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            Dim Str_FileName As String = "" ' <- AVIファイルのフルパス名。
            Dim Strc_AVIStremInfo As NSDAVI.AVI_STREAMINFO = Nothing
            Dim Strc_ICInfo As NSDAVI.IC_INFO = Nothing
            Dim Str_Msg As String = ""
            If ClsPrv_AVI.GetAVIStremInfo(Str_FileName, _
                                          Strc_AVIStremInfo, _
                                          Strc_ICInfo, _
                                          NSDAVI.STREAM_TYPE.TYPE_VIDEO) Then
                With Strc_AVIStremInfo
                    Str_Msg &= "ストリーム情報" & ControlChars.CrLf
                    Str_Msg &= "ストリームのタイプ:" & _
                                CStr(.dwfccType) & "(" & _
                                ClsPrv_AVI.GetTypeName(.dwfccType) & ")" & ControlChars.CrLf
                    Str_Msg &= "ビデオストリームを保存する圧縮ハンドラ:" & _
                                CStr(.dwfccHandler) & "(" & _
                                ClsPrv_AVI.GetTypeName(.dwfccHandler) & ")" & ControlChars.CrLf
                    Str_Msg &= "ストリームフラグ:" & _
                                CStr(.dwFlags) & ControlChars.CrLf
                    Str_Msg &= "機能フラグ:" & _
                                CStr(.dwCaps) & ControlChars.CrLf
                    Str_Msg &= "ストリームの優先順位:" & _
                                CStr(.wPriority) & ControlChars.CrLf
                    Str_Msg &= "ストリームの言語:" & _
                                CStr(.wLanguage) & ControlChars.CrLf
                    Str_Msg &= "ストリームの時間単位:" & _
                                CStr(.dwScale) & ControlChars.CrLf
                    Str_Msg &= "ストリームのレート:" & _
                                CStr(.dwRate) & ControlChars.CrLf
                    Str_Msg &= "AVIファイルの最初のサンプル番号:" & _
                                CStr(.dwStart) & ControlChars.CrLf
                    Str_Msg &= "ストリームの長さ:" & _
                                CStr(.dwLength) & ControlChars.CrLf
                    Str_Msg &= "ビデオストリームとオーディオストリームをどの程度すらすかを指定:" & _
                                CStr(.dwInitialFrames) & ControlChars.CrLf
                    Str_Msg &= "ストリームを読み込むときに適したバッファサイズ:" & _
                                CStr(.dwSuggestedBufferSize) & ControlChars.CrLf
                    Str_Msg &= "ビデオストリームの品質:" & _
                                CStr(.dwQuality) & ControlChars.CrLf
                    Str_Msg &= "1データサンプルのバイト数:" & _
                                CStr(.dwSampleSize) & ControlChars.CrLf
                    Str_Msg &= "矩形Top:" & _
                                CStr(.rcFrame.Top) & ControlChars.CrLf
                    Str_Msg &= "矩形Left:" & _
                                CStr(.rcFrame.Left) & ControlChars.CrLf
                    Str_Msg &= "矩形Right:" & _
                                CStr(.rcFrame.Right) & ControlChars.CrLf
                    Str_Msg &= "矩形Bottom:" & _
                                CStr(.rcFrame.Bottom) & ControlChars.CrLf
                    Str_Msg &= "ファイルを編集した回数:" & _
                                CStr(.dwEditCount) & ControlChars.CrLf
                    Str_Msg &= "フォーマットの変更回数:" & _
                                CStr(.dwFormatChangeCount) & ControlChars.CrLf
                    Str_Msg &= "ストリームの説明:" & _
                                .szName & ControlChars.CrLf
                End With

                With Strc_ICInfo
                    Str_Msg &=  ControlChars.CrLf
                    Str_Msg &=  "圧縮情報" & ControlChars.CrLf
                    Str_Msg &=  "ドライバーのバージョン番号:" & _
                                CStr(.dwVersion) & ControlChars.CrLf
                    Str_Msg &=  "VCMのバージョン番号:" & _
                                CStr(.dwVersionICM) & ControlChars.CrLf
                    Str_Msg &=  "短い圧縮プログラム名:" & _
                                .szName & ControlChars.CrLf
                    Str_Msg &=  "長い圧縮プログラム名:" & _
                                .szDescription & ControlChars.CrLf
                    Str_Msg &=  "VCM圧縮ドライバ:" & _
                                .szDriver
                End With
            Else
                Str_Msg = "情報の取得に失敗しました。"
            End If
            MsgBox(Str_Msg)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

 

名前:GetTypeName

構文:Public Function GetTypeName( Value ) As String

機能:ストリームのタイプを変換します。

引数:

名前 引数渡しの方法 説明
Value Int32 値渡し(ByVal) ストリームのタイプ値を渡します。

戻り値:String

戻り値の説明:

変換した文字列を返します。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            Dim Str_FileName As String = "" ' <- AVIファイルのフルパス名。
            Dim Strc_AVIStremInfo As NSDAVI.AVI_STREAMINFO = Nothing
            Dim Strc_ICInfo As NSDAVI.IC_INFO = Nothing
            Dim Str_Msg As String = ""
            If ClsPrv_AVI.GetAVIStremInfo(Str_FileName, _
                                          Strc_AVIStremInfo, _
                                          Strc_ICInfo) Then
                With Strc_AVIStremInfo
                    Str_Msg &= "ストリーム情報" & ControlChars.CrLf
                    Str_Msg &= "ストリームのタイプ:" & _
                                CStr(.dwfccType) & "(" & _
                                ClsPrv_AVI.GetTypeName(.dwfccType) & ")" & ControlChars.CrLf
                    Str_Msg &= "ビデオストリームを保存する圧縮ハンドラ:" & _
                                CStr(.dwfccHandler) & "(" & _
                                ClsPrv_AVI.GetTypeName(.dwfccHandler) & ")" & ControlChars.CrLf
                    Str_Msg &= "ストリームフラグ:" & _
                                CStr(.dwFlags) & ControlChars.CrLf
                    Str_Msg &= "機能フラグ:" & _
                                CStr(.dwCaps) & ControlChars.CrLf
                    Str_Msg &= "ストリームの優先順位:" & _
                                CStr(.wPriority) & ControlChars.CrLf
                    Str_Msg &= "ストリームの言語:" & _
                                CStr(.wLanguage) & ControlChars.CrLf
                    Str_Msg &= "ストリームの時間単位:" & _
                                CStr(.dwScale) & ControlChars.CrLf
                    Str_Msg &= "ストリームのレート:" & _
                                CStr(.dwRate) & ControlChars.CrLf
                    Str_Msg &= "AVIファイルの最初のサンプル番号:" & _
                                CStr(.dwStart) & ControlChars.CrLf
                    Str_Msg &= "ストリームの長さ:" & _
                                CStr(.dwLength) & ControlChars.CrLf
                    Str_Msg &= "ビデオストリームとオーディオストリームをどの程度すらすかを指定:" & _
                                CStr(.dwInitialFrames) & ControlChars.CrLf
                    Str_Msg &= "ストリームを読み込むときに適したバッファサイズ:" & _
                                CStr(.dwSuggestedBufferSize) & ControlChars.CrLf
                    Str_Msg &= "ビデオストリームの品質:" & _
                                CStr(.dwQuality) & ControlChars.CrLf
                    Str_Msg &= "1データサンプルのバイト数:" & _
                                CStr(.dwSampleSize) & ControlChars.CrLf
                    Str_Msg &= "矩形Top:" & _
                                CStr(.rcFrame.Top) & ControlChars.CrLf
                    Str_Msg &= "矩形Left:" & _
                                CStr(.rcFrame.Left) & ControlChars.CrLf
                    Str_Msg &= "矩形Right:" & _
                                CStr(.rcFrame.Right) & ControlChars.CrLf
                    Str_Msg &= "矩形Bottom:" & _
                                CStr(.rcFrame.Bottom) & ControlChars.CrLf
                    Str_Msg &= "ファイルを編集した回数:" & _
                                CStr(.dwEditCount) & ControlChars.CrLf
                    Str_Msg &= "フォーマットの変更回数:" & _
                                CStr(.dwFormatChangeCount) & ControlChars.CrLf
                    Str_Msg &= "ストリームの説明:" & _
                                .szName & ControlChars.CrLf
                End With

                With Strc_ICInfo
                    Str_Msg &=  ControlChars.CrLf
                    Str_Msg &=  "圧縮情報" & ControlChars.CrLf
                    Str_Msg &=  "ドライバーのバージョン番号:" & _
                                CStr(.dwVersion) & ControlChars.CrLf
                    Str_Msg &=  "VCMのバージョン番号:" & _
                                CStr(.dwVersionICM) & ControlChars.CrLf
                    Str_Msg &=  "短い圧縮プログラム名:" & _
                                .szName & ControlChars.CrLf
                    Str_Msg &=  "長い圧縮プログラム名:" & _
                                .szDescription & ControlChars.CrLf
                    Str_Msg &=  "VCM圧縮ドライバ:" & _
                                .szDriver
                End With
            Else
                Str_Msg = "情報の取得に失敗しました。"
            End If
            MsgBox(Str_Msg)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:GetAVIToBMPCount

構文:Public Function GetAVIToBMPCount( FileName ) As Integer

機能:AVIファイルからビデオストリームの長さを取得します。

引数:

名前 引数渡しの方法 説明
FileName String 値渡し(ByVal) AVIファイルのフルパス名を渡します。

戻り値:Integer

戻り値の説明:

ビデオストリームの長さを返します。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            Dim Str_FileName As String = "" ' <- AVIファイルのフルパス名。
            Dim Str_Msg As String = "ビデオフレーム数:" & _
                                    CStr(ClsPrv_AVI.GetAVIToBMPCount(Str_FileName))
            MsgBox(Str_Msg)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:GetCompressionList

構文:Public Function GetCompressionList() As IC_INFO()

機能:ビデオコーデックのリストを返します。

引数:なし。

戻り値:IC_INFO()

戻り値の説明:

ビデオコーデックのリストを返します。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            Dim Strc_IcInfo() As NSDAVI.IC_INFO = ClsPrv_AVI.GetCompressionList()
            If (Strc_IcInfo Is Nothing) Then
                MsgBox("インストールされているコーデックが見つかりません。")
            Else
                Dim Str_Msg As String = Nothing
                For Int_Loop As Integer = 0 To Strc_IcInfo.Length - 1
                    If Not String.IsNullOrEmpty(Str_Msg) Then
                        Str_Msg &= StrDup(20, "-"c) & ControlChars.CrLf
                    End If

                    With Strc_IcInfo(Int_Loop)
                        Str_Msg &= "ストリームのタイプ:" & _
                                    CStr(.fccType) & "(" & _
                                    ClsPrv_AVI.GetTypeName(.fccType) & ")" & _
                                    ControlChars.CrLf
                        Str_Msg &= "圧縮ハンドラ:" & CStr(.fccHandler) & _
                                    "(" & ClsPrv_AVI.GetTypeName(.fccHandler) & ")" & _
                                    ControlChars.CrLf
                        Str_Msg &=  "ドライバーのバージョン番号:" & _
                                    CStr(.dwVersion) & ControlChars.CrLf
                        Str_Msg &=  "VCMのバージョン番号:" & _
                                    CStr(.dwVersionICM) & ControlChars.CrLf
                        Str_Msg &=  "短い圧縮プログラム名:" & _
                                    .szName & ControlChars.CrLf
                        Str_Msg &=  "長い圧縮プログラム名:" & _
                                    .szDescription & ControlChars.CrLf
                        Str_Msg &=  "VCM圧縮ドライバ:" & _
                                    .szDriver & ControlChars.CrLf
                    End With
                Next Int_Loop
                MsgBox(Str_Msg)
            End If
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:GetAVIToPicture

機能:AVIファイルから指定フレームを指定画像形式のファイルにします。

@AVIファイルから全フレームを指定画像形式のファイルにします。

構文:Public Overloads Function GetAVIToPicture( AVIFileName , SaveFolder , FileName , Figure , PicStyle ) As Boolean

引数:

名前 引数渡しの方法 説明
AVIFileName String 値渡し(ByVal) AVIファイルのフルパス名を渡します。
SaveFolder String 値渡し(ByVal) ファイルを保存するフォルダをフルパス名で渡します。
FileName String 値渡し(ByVal) ファイル名(拡張子なし)を渡します。
Figure Integer 値渡し(ByVal) 連番の桁数を渡します。
PicStyle PICTURE_SAVE_STYLE 値渡し(ByVal) 保存する画像形式を渡します。

戻り値:Boolean

戻り値の説明:

True:成功 False:失敗

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            Dim Str_FileName As String = ""     ' <- AVIファイルのフルパス名。
            Dim Str_FolderName As String = ""   ' <- 画像を保存するフォルダのフルパス名。
            Dim Str_PicFile As String = ""      ' <- 保存する画像ファイル名。

            ' 取り出す画像ファイルの種類を設定。
            Dim Int_Picture_Save_Style As NSDAVI.PICTURE_SAVE_STYLE _
                                    = NSDAVI.PICTURE_SAVE_STYLE.BMP
            If ClsPrv_AVI.GetAVIToPicture(Str_FileName, _
                                          Str_FolderName, _
                                          Str_PicFile, _
                                          5, _
                                          Int_Picture_Save_Style) Then
                MsgBox("画像ファイルを取り出しました。")
            Else
                MsgBox("画像ファイルの取り出しに失敗しました。")
            End If
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

AAVIファイルから指定フレームを指定画像形式のファイルにします。

構文:Public Overloads Function GetAVIToPicture( AVIFileName , SaveFolder , SelectNo , FileName , PicStyle ) As Boolean

引数:

名前 引数渡しの方法 説明
AVIFileName String 値渡し(ByVal) AVIファイルのフルパス名を渡します。
SaveFolder String 値渡し(ByVal) ファイルを保存するフォルダをフルパス名で渡します。
SelectNo Integer 値渡し(ByVal) 指定フレーム番号を渡します。
※先頭のフレーム番号は0です。
FileName String 値渡し(ByVal) ファイル名(拡張子なし)を渡します。
PicStyle PICTURE_SAVE_STYLE 値渡し(ByVal)

保存する画像形式を渡します。

戻り値:Boolean

戻り値の説明:

True:成功 False:失敗

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            Dim Str_FileName As String = ""     ' <- AVIファイルのフルパス名。
            Dim Str_FolderName As String = ""   ' <- 画像を保存するフォルダのフルパス名。
            Dim Str_PicFile As String = ""      ' <- 保存する画像ファイル名。

            ' 取り出す画像ファイルの種類を設定。
            Dim Int_Picture_Save_Style As NSDAVI.PICTURE_SAVE_STYLE _
                                    = NSDAVI.PICTURE_SAVE_STYLE.BMP
            If ClsPrv_AVI.GetAVIToPicture(Str_FileName, _
                                          Str_FolderName, _
                                          0, _
                                          Str_PicFile, _
                                          Int_Picture_Save_Style) Then
                MsgBox("画像ファイルを取り出しました。")
            Else
                MsgBox("画像ファイルの取り出しに失敗しました。")
            End If
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

BAVIファイルから指定範囲のフレームを指定画像形式のファイルにします。

構文:Public Overloads Function GetAVIToPicture( AVIFileName , SaveFolder , StartNo , EndNo , Figure , FileName , PicStyle ) As Boolean

引数:

名前 引数渡しの方法 説明
AVIFileName String 値渡し(ByVal) AVIファイルのフルパス名を渡します。
SaveFolder String 値渡し(ByVal) ファイルを保存するフォルダをフルパス名で渡します。
StartNo Integer 値渡し(ByVal) 開始フレーム番号を渡します。
※先頭のフレーム番号は0です。
EndNo Integer 値渡し(ByVal) 終了フレーム番号を渡します。
※-1=最終のフレーム番号です。
Figure Integer 値渡し(ByVal) 連番の桁数を渡します。
FileName String 値渡し(ByVal) ファイル名(拡張子なし)を渡します。
PicStyle PICTURE_SAVE_STYLE 値渡し(ByVal) 保存する画像形式を渡します。

戻り値:Boolean

戻り値の説明:

True:成功 False:失敗

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            Dim Str_FileName As String = ""     ' <- AVIファイルのフルパス名。
            Dim Str_FolderName As String = ""   ' <- 画像を保存するフォルダのフルパス名。
            Dim Str_PicFile As String = ""      ' <- 保存する画像ファイル名。

            ' 取り出す画像ファイルの種類を設定。
            Dim Int_Picture_Save_Style As NSDAVI.PICTURE_SAVE_STYLE _
                                    = NSDAVI.PICTURE_SAVE_STYLE.BMP
            If ClsPrv_AVI.GetAVIToPicture(Str_FileName, _
                                          Str_FolderName, _
                                          0, _
                                          -1, _
                                          5, _
                                          Str_PicFile, _
                                          Int_Picture_Save_Style) Then
                MsgBox("画像ファイルを取り出しました。")
            Else
                MsgBox("画像ファイルの取り出しに失敗しました。")
            End If
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:GetDefaultAVISTREAMINFO

構文:Public Function GetDefaultAVISTREAMINFO() As AVI_STREAMINFO

機能:ストリーム情報用の構造体を初期化します。

引数:なし。

戻り値:AVI_STREAMINFO

戻り値の説明:

初期化したストリーム情報の構造体を返します。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            ' 画像ファイルのフォルダ。
            Dim Str_Folder As String = "" ' <- 画像ファイルフォルダのフルパス名。
            ' 作成AVIファイル。
            Dim Str_AviFileName As String = "" ' <- 作成AVIファイル名。
            ' ストリーム情報を初期化します。
            Dim Strc_AviStreamInfo As NSDAVI.AVI_STREAMINFO = ClsPrv_AVI.GetDefaultAVISTREAMINFO

            Do
                ' folderにあるファイルを取得する。
                Dim Str_PicFileList As String()
                Dim Str_ExName As String = "bmp"
                Dim Int_PicIndex As NSDAVI.PICTURE_SAVE_STYLE = NSDAVI.PICTURE_SAVE_STYLE.BMP

                Str_PicFileList = System.IO.Directory.GetFiles(Str_Folder, "*." & Str_ExName)
                If (Str_PicFileList Is Nothing) Then
                    MsgBox("画像ファイルが存在しません。")
                    Exit Do
                End If
                ' 画像ファイル名をソートします。
                Array.Sort(Str_PicFileList)

                Dim Int_MsgNo As Integer = 0
                ' 圧縮なし。
                If ClsPrv_AVI.SetPictureToAVI(Str_PicFileList, Int_PicIndex, Str_AviFileName, Strc_AviStreamInfo, True) Then
                    MsgBox("AVIファイルを作成しました。")
                Else
                    MsgBox("AVIファイルの作成に失敗しました。")
                End If
            Loop While (0)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:SetPictureToAVI

機能:画像ファイルからAVIファイルを作成します。

@画像ファイルからAVIファイルを圧縮なしで作成します。

構文:Public Overloads Function SetPictureToAVI( PicFileList() , PicStyle , AVIFileName , AviStreamInfo ) As Boolean

引数:

名前 引数渡しの方法 説明
PicFileList() String 値渡し(ByVal) 元の画像ファイルのフルパス名を渡します。
PicStyle PICTURE_SAVE_STYLE 値渡し(ByVal) 画像ファイルの形式を渡します。
AVIFileName String 値渡し(ByVal) 作成するAVIファイルのフルパス名を渡します。
AviStreamInfo AVI_STREAMINFO 値渡し(ByVal) 作成するAVIのストリーム情報を渡します。

戻り値:Boolean

戻り値の説明:

True:成功 False:失敗

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            ' 画像ファイルのフォルダ。
            Dim Str_Folder As String = "" ' <- 画像ファイルフォルダのフルパス名。
            ' 作成AVIファイル。
            Dim Str_AviFileName As String = "" ' <- 作成AVIファイル名。
            ' ストリーム情報を初期化します。
            Dim Strc_AviStreamInfo As NSDAVI.AVI_STREAMINFO = ClsPrv_AVI.GetDefaultAVISTREAMINFO

            Do
                ' folderにあるファイルを取得する。
                Dim Str_PicFileList As String()
                Dim Str_ExName As String = "bmp"
                Dim Int_PicIndex As NSDAVI.PICTURE_SAVE_STYLE = NSDAVI.PICTURE_SAVE_STYLE.BMP

                Str_PicFileList = System.IO.Directory.GetFiles(Str_Folder, "*." & Str_ExName)
                If (Str_PicFileList Is Nothing) Then
                    MsgBox("画像ファイルが存在しません。")
                    Exit Do
                End If
                ' 画像ファイル名をソートします。
                Array.Sort(Str_PicFileList)

                Dim Int_MsgNo As Integer = 0
                ' 圧縮なし。
                If ClsPrv_AVI.SetPictureToAVI(Str_PicFileList, Int_PicIndex, Str_AviFileName, Strc_AviStreamInfo) Then
                    MsgBox("AVIファイルを作成しました。")
                Else
                    MsgBox("AVIファイルの作成に失敗しました。")
                End If
            Loop While (0)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

A画像ファイルからAVIファイルを圧縮なしで作成します。
   (毎回画像ファイル情報からストリームフォーマットをセットします。)

構文:Public Overloads Function SetPictureToAVI( PicFileList() , PicStyle , AVIFileName , AviStreamInfo , SetFormat ) As Boolean

引数:

名前 引数渡しの方法 説明
PicFileList() String 値渡し(ByVal) 元の画像ファイルのフルパス名を渡します。
PicStyle PICTURE_SAVE_STYLE 値渡し(ByVal) 画像ファイルの形式を渡します。
AVIFileName String 値渡し(ByVal) 作成するAVIファイルのフルパス名を渡します。
AviStreamInfo AVI_STREAMINFO 値渡し(ByVal) 作成するAVIのストリーム情報を渡します。
SetFormat Boolean 値渡し(ByVal) 必ずTrueを指定します。

戻り値:Boolean

戻り値の説明:

True:成功 False:失敗

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            ' 画像ファイルのフォルダ。
            Dim Str_Folder As String = "" ' <- 画像ファイルフォルダのフルパス名。
            ' 作成AVIファイル。
            Dim Str_AviFileName As String = "" ' <- 作成AVIファイル名。
            ' ストリーム情報を初期化します。
            Dim Strc_AviStreamInfo As NSDAVI.AVI_STREAMINFO = ClsPrv_AVI.GetDefaultAVISTREAMINFO

            Do
                ' folderにあるファイルを取得する。
                Dim Str_PicFileList As String()
                Dim Str_ExName As String = "bmp"
                Dim Int_PicIndex As NSDAVI.PICTURE_SAVE_STYLE = NSDAVI.PICTURE_SAVE_STYLE.BMP

                Str_PicFileList = System.IO.Directory.GetFiles(Str_Folder, "*." & Str_ExName)
                If (Str_PicFileList Is Nothing) Then
                    MsgBox("画像ファイルが存在しません。")
                    Exit Do
                End If
                ' 画像ファイル名をソートします。
                Array.Sort(Str_PicFileList)

                Dim Int_MsgNo As Integer = 0
                ' 圧縮なし。
                If ClsPrv_AVI.SetPictureToAVI(Str_PicFileList, Int_PicIndex, Str_AviFileName, Strc_AviStreamInfo, True) Then
                    MsgBox("AVIファイルを作成しました。")
                Else
                    MsgBox("AVIファイルの作成に失敗しました。")
                End If
            Loop While (0)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

B画像ファイルからAVIファイルを圧縮オプション用ダイアログを表示して作成します。

構文:Public Overloads Function SetPictureToAVI( hWnd , PicFileList() , PicStyle , AVIFileName , AviStreamInfo ) As Boolean

引数:

名前 引数渡しの方法 説明
hWnd IntPtr 値渡し(ByVal) 親フォームのハンドルを渡します。
PicFileList() String 値渡し(ByVal) 元の画像ファイルのフルパス名を渡します。
PicStyle PICTURE_SAVE_STYLE 値渡し(ByVal) 画像ファイルの形式を渡します。
AVIFileName String 値渡し(ByVal) 作成するAVIファイルのフルパス名を渡します。
AviStreamInfo AVI_STREAMINFO 値渡し(ByVal)

作成するAVIのストリーム情報を渡します。

戻り値:Boolean

戻り値の説明:

True:成功 False:失敗

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            ' 画像ファイルのフォルダ。
            Dim Str_Folder As String = "" ' <- 画像ファイルフォルダのフルパス名。
            ' 作成AVIファイル。
            Dim Str_AviFileName As String = "" ' <- 作成AVIファイル名。
            ' ストリーム情報を初期化します。
            Dim Strc_AviStreamInfo As NSDAVI.AVI_STREAMINFO = ClsPrv_AVI.GetDefaultAVISTREAMINFO

            Do
                ' folderにあるファイルを取得する。
                Dim Str_PicFileList As String()
                Dim Str_ExName As String = "bmp"
                Dim Int_PicIndex As NSDAVI.PICTURE_SAVE_STYLE = NSDAVI.PICTURE_SAVE_STYLE.BMP

                Str_PicFileList = System.IO.Directory.GetFiles(Str_Folder, "*." & Str_ExName)
                If (Str_PicFileList Is Nothing) Then
                    MsgBox("画像ファイルが存在しません。")
                    Exit Do
                End If
                ' 画像ファイル名をソートします。
                Array.Sort(Str_PicFileList)

                ' 圧縮オプション用ダイアログを表示します。
                If ClsPrv_AVI.SetPictureToAVI( Me.Handle, _
                                               Str_PicFileList, _
                                               Int_PicIndex, _
                                               Str_AviFileName, _
                                               Strc_AviStreamInfo) Then
                    MsgBox("AVIファイルを作成しました。")
                Else
                    MsgBox("AVIファイルの作成に失敗しました。")
                End If
            Loop While (0)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

C画像ファイルからAVIファイルを圧縮オプション用ダイアログを表示して作成します。
   (毎回画像ファイル情報からストリームフォーマットをセットします。)

構文:Public Overloads Function SetPictureToAVI( hWnd , PicFileList() , PicStyle , AVIFileName , AviStreamInfo , SetFormat ) As Boolean

引数:

名前 引数渡しの方法 説明
hWnd IntPtr 値渡し(ByVal) 親フォームのハンドルを渡します。
PicFileList() String 値渡し(ByVal) 元の画像ファイルのフルパス名を渡します。
PicStyle PICTURE_SAVE_STYLE 値渡し(ByVal) 画像ファイルの形式を渡します。
AVIFileName String 値渡し(ByVal) 作成するAVIファイルのフルパス名を渡します。
AviStreamInfo AVI_STREAMINFO 値渡し(ByVal) 作成するAVIのストリーム情報を渡します。
SetFormat Boolean 値渡し(ByVal) 必ずTrueを指定します。

戻り値:Boolean

戻り値の説明:

True:成功 False:失敗

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            ' 画像ファイルのフォルダ。
            Dim Str_Folder As String = "" ' <- 画像ファイルフォルダのフルパス名。
            ' 作成AVIファイル。
            Dim Str_AviFileName As String = "" ' <- 作成AVIファイル名。
            ' ストリーム情報を初期化します。
            Dim Strc_AviStreamInfo As NSDAVI.AVI_STREAMINFO = ClsPrv_AVI.GetDefaultAVISTREAMINFO

            Do
                ' folderにあるファイルを取得する。
                Dim Str_PicFileList As String()
                Dim Str_ExName As String = "bmp"
                Dim Int_PicIndex As NSDAVI.PICTURE_SAVE_STYLE = NSDAVI.PICTURE_SAVE_STYLE.BMP

                Str_PicFileList = System.IO.Directory.GetFiles(Str_Folder, "*." & Str_ExName)
                If (Str_PicFileList Is Nothing) Then
                    MsgBox("画像ファイルが存在しません。")
                    Exit Do
                End If
                ' 画像ファイル名をソートします。
                Array.Sort(Str_PicFileList)

                ' 圧縮オプション用ダイアログを表示します。
                If ClsPrv_AVI.SetPictureToAVI( Me.Handle, _
                                               Str_PicFileList, _
                                               Int_PicIndex, _
                                               Str_AviFileName, _
                                               Strc_AviStreamInfo, _
                                               True) Then
                    MsgBox("AVIファイルを作成しました。")
                Else
                    MsgBox("AVIファイルの作成に失敗しました。")
                End If
            Loop While (0)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

D画像ファイルからAVIファイルを圧縮オプションを指定して作成します。

構文:Public Overloads Function SetPictureToAVI( PicFileList() , PicStyle , AVIFileName , AviStreamInfo , Compvars ) As Boolean

引数:

名前 引数渡しの方法 説明
PicFileList() String 値渡し(ByVal) 元の画像ファイルのフルパス名を渡します。
PicStyle PICTURE_SAVE_STYLE 値渡し(ByVal) 画像ファイルの形式を渡します。
AVIFileName String 値渡し(ByVal) 作成するAVIファイルのフルパス名を渡します。
AviStreamInfo AVI_STREAMINFO 値渡し(ByVal) 作成するAVIのストリーム情報を渡します。
Compvars COMPVARS 参照渡し(ByRef) 圧縮情報を渡します。

戻り値:Boolean

戻り値の説明:

True:成功 False:失敗

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            ' 画像ファイルのフォルダ。
            Dim Str_Folder As String = "" ' <- 画像ファイルフォルダのフルパス名。
            ' 作成AVIファイル。
            Dim Str_AviFileName As String = "" ' <- 作成AVIファイル名。
            ' ストリーム情報を初期化します。
            Dim Strc_AviStreamInfo As NSDAVI.AVI_STREAMINFO = ClsPrv_AVI.GetDefaultAVISTREAMINFO

            Do
                ' folderにあるファイルを取得する。
                Dim Str_PicFileList As String()
                Dim Str_ExName As String = "bmp"
                Dim Int_PicIndex As NSDAVI.PICTURE_SAVE_STYLE = NSDAVI.PICTURE_SAVE_STYLE.BMP

                Str_PicFileList = System.IO.Directory.GetFiles(Str_Folder, "*." & Str_ExName)
                If (Str_PicFileList Is Nothing) Then
                    MsgBox("画像ファイルが存在しません。")
                    Exit Do
                End If
                ' 画像ファイル名をソートします。
                Array.Sort(Str_PicFileList)

                ' 指定された圧縮オプションを使用します。
                Dim Int_IcmfChoose As NSDAVI.ICMF_CHOOSE
                Dim Strc_Compvars As NSDAVI.COMPVARS

                Int_IcmfChoose = NSDAVI.ICMF_CHOOSE.KEYFRAME Or NSDAVI.ICMF_CHOOSE.DATARATE
                ' 圧縮オプションを指定します。
                If ClsPrv_AVI.GetCompressOptions( Me.Handle, _
                                                  Int_IcmfChoose, _
                                                  Strc_Compvars, _
                                                  Str_PicFileList(0)) Then
                    ' 画像ファイルからAVIファイルを作成します。
                    If ClsPrv_AVI.SetPictureToAVI(Str_PicFileList, _
                                                  Int_PicIndex, _
                                                  Str_AviFileName, _
                                                  Strc_AviStreamInfo, _
                                                  Strc_Compvars) Then
                        MsgBox("AVIファイルを作成しました。")
                    Else
                        MsgBox("AVIファイルの作成に失敗しました。")
                    End If
                    ' リソースを解放します。
                    ClsPrv_AVI.CompressOptionsFree(Strc_Compvars)
                End If
            Loop While (0)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

E画像ファイルからAVIファイルを圧縮オプションを指定して作成します。
   (毎回画像ファイル情報からストリームフォーマットをセットします。)
   ※32bitプロセスのみ使用可能です。

構文:Public Overloads Function SetPictureToAVI( PicFileList() , PicStyle , AVIFileName , AviStreamInfo , Compvars , SetFormat ) As Boolean

引数:

名前 引数渡しの方法 説明
PicFileList() String 値渡し(ByVal) 元の画像ファイルのフルパス名を渡します。
PicStyle PICTURE_SAVE_STYLE 値渡し(ByVal) 画像ファイルの形式を渡します。
AVIFileName String 値渡し(ByVal) 作成するAVIファイルのフルパス名を渡します。
AviStreamInfo AVI_STREAMINFO 値渡し(ByVal) 作成するAVIのストリーム情報を渡します。
Compvars COMPVARS 参照渡し(ByRef) 圧縮情報を渡します。
SetFormat Boolean 値渡し(ByVal) 必ずTrueを指定します。

戻り値:Boolean

戻り値の説明:

True:成功 False:失敗

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            ' 画像ファイルのフォルダ。
            Dim Str_Folder As String = "" ' <- 画像ファイルフォルダのフルパス名。
            ' 作成AVIファイル。
            Dim Str_AviFileName As String = "" ' <- 作成AVIファイル名。
            ' ストリーム情報を初期化します。
            Dim Strc_AviStreamInfo As NSDAVI.AVI_STREAMINFO = ClsPrv_AVI.GetDefaultAVISTREAMINFO

            Do
                ' folderにあるファイルを取得する。
                Dim Str_PicFileList As String()
                Dim Str_ExName As String = "bmp"
                Dim Int_PicIndex As NSDAVI.PICTURE_SAVE_STYLE = NSDAVI.PICTURE_SAVE_STYLE.BMP

                Str_PicFileList = System.IO.Directory.GetFiles(Str_Folder, "*." & Str_ExName)
                If (Str_PicFileList Is Nothing) Then
                    MsgBox("画像ファイルが存在しません。")
                    Exit Do
                End If
                ' 画像ファイル名をソートします。
                Array.Sort(Str_PicFileList)

                ' 指定された圧縮オプションを使用します。
                Dim Int_IcmfChoose As NSDAVI.ICMF_CHOOSE
                Dim Strc_Compvars As NSDAVI.COMPVARS

                Int_IcmfChoose = NSDAVI.ICMF_CHOOSE.KEYFRAME Or NSDAVI.ICMF_CHOOSE.DATARATE
                ' 圧縮オプションを指定します。
                If ClsPrv_AVI.GetCompressOptions( Me.Handle, _
                                                  Int_IcmfChoose, _
                                                  Strc_Compvars, _
                                                  Str_PicFileList(0)) Then
                    ' 画像ファイルからAVIファイルを作成します。
                    If ClsPrv_AVI.SetPictureToAVI(Str_PicFileList, _
                                                  Int_PicIndex, _
                                                  Str_AviFileName, _
                                                  Strc_AviStreamInfo, _
                                                  Strc_Compvars, _
                                                  True) Then
                        MsgBox("AVIファイルを作成しました。")
                    Else
                        MsgBox("AVIファイルの作成に失敗しました。")
                    End If
                    ' リソースを解放します。
                    ClsPrv_AVI.CompressOptionsFree(Strc_Compvars)
                End If
            Loop While (0)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:GetCompressOptions

構文:Public Function GetCompressOptions( hWnd , IcmfChoose , Compvars , [File] ) As Boolean

機能:圧縮オプションを設定します。

※CompressOptionsFreeで必ずリソースを解放してください。

引数:

名前 引数渡しの方法 説明
hWnd IntPtr 値渡し(ByVal) 親ウィンドウのハンドルを渡します。
IcmfChoose ICMF_CHOOSE 値渡し(ByVal) 圧縮用フラグを渡します。
Compvars COMPVARS 参照渡し(ByRef) 圧縮情報を返します。
[File] String 値渡し(ByVal) AVIにセットする先頭画像ファイルのフルパス名を渡します。
(既定値:"")

戻り値:Boolean

戻り値の説明:

True:成功 False:失敗

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            ' 画像ファイルのフォルダ。
            Dim Str_Folder As String = "" ' <- 画像ファイルフォルダのフルパス名。
            ' 作成AVIファイル。
            Dim Str_AviFileName As String = "" ' <- 作成AVIファイル名。
            ' ストリーム情報を初期化します。
            Dim Strc_AviStreamInfo As NSDAVI.AVI_STREAMINFO = ClsPrv_AVI.GetDefaultAVISTREAMINFO

            Do
                ' folderにあるファイルを取得する。
                Dim Str_PicFileList As String()
                Dim Str_ExName As String = "bmp"
                Dim Int_PicIndex As NSDAVI.PICTURE_SAVE_STYLE = NSDAVI.PICTURE_SAVE_STYLE.BMP

                Str_PicFileList = System.IO.Directory.GetFiles(Str_Folder, "*." & Str_ExName)
                If (Str_PicFileList Is Nothing) Then
                    MsgBox("画像ファイルが存在しません。")
                    Exit Do
                End If
                ' 画像ファイル名をソートします。
                Array.Sort(Str_PicFileList)

                ' 指定された圧縮オプションを使用します。
                Dim Int_IcmfChoose As NSDAVI.ICMF_CHOOSE
                Dim Strc_Compvars As NSDAVI.COMPVARS

                Int_IcmfChoose = NSDAVI.ICMF_CHOOSE.KEYFRAME Or NSDAVI.ICMF_CHOOSE.DATARATE
                ' 圧縮オプションを指定します。
                If ClsPrv_AVI.GetCompressOptions( Me.Handle, _
                                                  Int_IcmfChoose, _
                                                  Strc_Compvars, _
                                                  Str_PicFileList(0)) Then
                    ' GetCompressOptionsで設定されるので、コンプレッサハンドルの確認を行わない。
                    ClsPrv_AVI.AVICreateCheckHic = False
                    ' 画像ファイルからAVIファイルを作成します。
                    If ClsPrv_AVI.SetPictureToAVI(Str_PicFileList, _
                                                  Int_PicIndex, _
                                                  Str_AviFileName, _
                                                  Strc_AviStreamInfo, _
                                                  Strc_Compvars, _
                                                  True) Then
                        MsgBox("AVIファイルを作成しました。")
                    Else
                        MsgBox("AVIファイルの作成に失敗しました。")
                    End If
                    ' リソースを解放します。
                    ClsPrv_AVI.CompressOptionsFree(Strc_Compvars)
                End If
            Loop While (0)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:CompressOptionsFree

構文:Public Function CompressOptionsFree( Compvars ) As Boolean

機能:GetCompressOptionsで使用したリソースを解放します。

引数:

名前 引数渡しの方法 説明
Compvars COMPVARS 参照渡し(ByRef) GetCompressOptionsで使用した圧縮情報を渡します。

戻り値:Boolean

戻り値の説明:

True:成功 False:失敗

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            ' 画像ファイルのフォルダ。
            Dim Str_Folder As String = "" ' <- 画像ファイルフォルダのフルパス名。
            ' 作成AVIファイル。
            Dim Str_AviFileName As String = "" ' <- 作成AVIファイル名。
            ' ストリーム情報を初期化します。
            Dim Strc_AviStreamInfo As NSDAVI.AVI_STREAMINFO = ClsPrv_AVI.GetDefaultAVISTREAMINFO

            Do
                ' folderにあるファイルを取得する。
                Dim Str_PicFileList As String()
                Dim Str_ExName As String = "bmp"
                Dim Int_PicIndex As NSDAVI.PICTURE_SAVE_STYLE = NSDAVI.PICTURE_SAVE_STYLE.BMP

                Str_PicFileList = System.IO.Directory.GetFiles(Str_Folder, "*." & Str_ExName)
                If (Str_PicFileList Is Nothing) Then
                    MsgBox("画像ファイルが存在しません。")
                    Exit Do
                End If
                ' 画像ファイル名をソートします。
                Array.Sort(Str_PicFileList)

                ' 指定された圧縮オプションを使用します。
                Dim Int_IcmfChoose As NSDAVI.ICMF_CHOOSE
                Dim Strc_Compvars As NSDAVI.COMPVARS

                Int_IcmfChoose = NSDAVI.ICMF_CHOOSE.KEYFRAME Or NSDAVI.ICMF_CHOOSE.DATARATE
                ' 圧縮オプションを指定します。
                If ClsPrv_AVI.GetCompressOptions( Me.Handle, _
                                                  Int_IcmfChoose, _
                                                  Strc_Compvars, _
                                                  Str_PicFileList(0)) Then
                    ' 画像ファイルからAVIファイルを作成します。
                    If ClsPrv_AVI.SetPictureToAVI(Str_PicFileList, _
                                                  Int_PicIndex, _
                                                  Str_AviFileName, _
                                                  Strc_AviStreamInfo, _
                                                  Strc_Compvars, _
                                                   True) Then
                        MsgBox("AVIファイルを作成しました。")
                    Else
                        MsgBox("AVIファイルの作成に失敗しました。")
                    End If
                    ' リソースを解放します。
                    ClsPrv_AVI.CompressOptionsFree(Strc_Compvars)
                End If
            Loop While (0)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:IsOkCompressOptions

構文:Public Function IsOkCompressOptions( Compvars ) As Boolean

機能:圧縮オプションがSetPictureToAVIで使用できるかを確認します。

※コーデックのハンドル、コンプレッサ情報、サイズ指定の確認、品質の確認、フラグの確認を行います。

引数:

名前 引数渡しの方法 説明
Compvars COMPVARS 値渡し(ByVal) 圧縮オプションを渡します。

戻り値:Boolean

戻り値の説明:

True :使用可能。

False:使用できません(コーデックがインストールされていない場合などが考えられます)。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            ' 画像ファイルのフォルダ。
            Dim Str_Folder As String = "" ' <- 画像ファイルフォルダのフルパス名。
            ' 作成AVIファイル。
            Dim Str_AviFileName As String = "" ' <- 作成AVIファイル名。
            ' ストリーム情報を初期化します。
            Dim Strc_AviStreamInfo As NSDAVI.AVI_STREAMINFO = ClsPrv_AVI.GetDefaultAVISTREAMINFO

            Do
                ' folderにあるファイルを取得する。
                Dim Str_PicFileList As String()
                Dim Str_ExName As String = "bmp"
                Dim Int_PicIndex As NSDAVI.PICTURE_SAVE_STYLE = NSDAVI.PICTURE_SAVE_STYLE.BMP

                Str_PicFileList = System.IO.Directory.GetFiles(Str_Folder, "*." & Str_ExName)
                If (Str_PicFileList Is Nothing) Then
                    MsgBox("画像ファイルが存在しません。")
                    Exit Do
                End If
                ' 画像ファイル名をソートします。
                Array.Sort(Str_PicFileList)

                ' 指定された圧縮オプションを使用します。
                Dim Int_IcmfChoose As NSDAVI.ICMF_CHOOSE
                Dim Strc_Compvars As NSDAVI.COMPVARS

                Int_IcmfChoose = NSDAVI.ICMF_CHOOSE.KEYFRAME Or NSDAVI.ICMF_CHOOSE.DATARATE
                ' 圧縮オプションを指定します。
                If ClsPrv_AVI.GetCompressOptions( Me.Handle, _
                                                  Int_IcmfChoose, _
                                                  Strc_Compvars, _
                                                  Str_PicFileList(0)) Then
                    ' リソースを解放します。
                    ClsPrv_AVI.CompressOptionsFree(Strc_Compvars)
                    If ClsPrv_AVI.IsOkCompressOptions(Strc_Compvars) Then
                        ' CompressOptionsFreeを行っているので、コンプレッサハンドルの確認を行う。
                        ClsPrv_AVI.AVICreateCheckHic = True
                        ' 画像ファイルからAVIファイルを作成します。
                        If ClsPrv_AVI.SetPictureToAVI(Str_PicFileList, _
                                                  Int_PicIndex, _
                                                  Str_AviFileName, _
                                                  Strc_AviStreamInfo, _
                                                  Strc_Compvars, _
                                                  True) Then
                            MsgBox("AVIファイルを作成しました。")
                        Else
                            MsgBox("AVIファイルの作成に失敗しました。")
                        End If
                    End If
                End If
            Loop While (0)
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:UnionVideoAviAndWave

構文:Public Function UnionVideoAviAndWave( VideoAviFile , WaveFile , NewAviFile ) As Boolean

機能:ビデオ用AVIファイルとオーディオ用Waveファイルを結合します。

引数:

名前 引数渡しの方法 説明
VideoAviFile String 値渡し(ByVal) ビデオ用AVIファイルのフルパス名を渡します。
WaveFile String 値渡し(ByVal) オーディオ用Waveファイルのフルパス名を渡します。
NewAviFile String 値渡し(ByVal) 新しく作成するAVIファイルのフルパス名を渡します。

戻り値:Boolean

戻り値の説明:

True:成功 False:失敗

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            Dim Str_SourceVideoAviFile As String = ""   ' <- 画像AVIファイルのフルパス名。
            Dim Str_SourceWaveFile As String = ""       ' <- 音声WAVEファイルのフルパス名。
            Dim Str_NewAviFile As String = ""           ' <- 新規結合AVIファイルのフルパス名。

            If ClsPrv_AVI.UnionVideoAviAndWave(Str_SourceVideoAviFile, _
                                               Str_SourceWaveFile, _
                                               Str_NewAviFile) Then
                MsgBox("AVIファイルを結合しました。")
            Else
                MsgBox("AVIファイルの結合に失敗しました。")
            End If
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:GetErrorNo

構文:Public Function GetErrorNo() As ErrorNo

機能:エラー番号を返します。

引数:なし。

戻り値:ErrorNo

戻り値の説明:

エラー番号を返します。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            Dim Str_FileName As String = ""     ' <- AVIファイルのフルパス名。
            Dim Str_FolderName As String = ""   ' <- 画像を保存するフォルダのフルパス名。
            Dim Str_PicFile As String = ""      ' <- 保存する画像ファイル名。

            ' 取り出す画像ファイルの種類を設定。
            Dim Int_Picture_Save_Style As NSDAVI.PICTURE_SAVE_STYLE _
                                    = NSDAVI.PICTURE_SAVE_STYLE.BMP
            If ClsPrv_AVI.GetAVIToPicture(Str_FileName, _
                                          Str_FolderName, _
                                          0, _
                                          -1, _
                                          5, _
                                          Str_PicFile, _
                                          Int_Picture_Save_Style) Then
                MsgBox("画像ファイルを取り出しました。")
            Else
                MsgBox("画像ファイルの取り出しに失敗しました。 エラー番号:" & CStr(ClsPrv_AVI.GetErrorNo()))
            End If
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:GetErrorMsg

構文:Public Function GetErrorMsg() As String

機能:エラーメッセージを返します。

引数:なし。

戻り値:String

戻り値の説明:

エラーメッセージを返します。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            Dim Str_FileName As String = ""     ' <- AVIファイルのフルパス名。
            Dim Str_FolderName As String = ""   ' <- 画像を保存するフォルダのフルパス名。
            Dim Str_PicFile As String = ""      ' <- 保存する画像ファイル名。

            ' 取り出す画像ファイルの種類を設定。
            Dim Int_Picture_Save_Style As NSDAVI.PICTURE_SAVE_STYLE _
                                    = NSDAVI.PICTURE_SAVE_STYLE.BMP
            If ClsPrv_AVI.GetAVIToPicture(Str_FileName, _
                                          Str_FolderName, _
                                          0, _
                                          -1, _
                                          5, _
                                          Str_PicFile, _
                                          Int_Picture_Save_Style) Then
                MsgBox("画像ファイルを取り出しました。")
            Else
                MsgBox("画像ファイルの取り出しに失敗しました。" & ControlChars.CrLf & ClsPrv_AVI.GetErrorMsg())
            End If
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

●NSDAVIイベントの説明

 

名前:GetAVIPictureInfo

構文:Public Event GetAVIPictureState( ReadDataNo , TotalDataNo , Stop )

機能:GetAVIPictureで1件データを読み込む前に発生するイベント。

引数:

名前 引数渡しの方法 説明
ReadDataNo Integer 値渡し(ByVal) 読み込みデータの番号を返します(0番から開始します)。
TotalDataNo Integer 値渡し(ByVal) データの件数を返します。
Stop Boolean 参照渡し(ByRef) 取得を中止するかを渡します。
True:中止 False:中止しません(既定値)

戻り値:なし。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            Dim Str_FileName As String = ""     ' <- AVIファイルのフルパス名。
            Dim Str_FolderName As String = ""   ' <- 画像を保存するフォルダのフルパス名。
            Dim Str_PicFile As String = ""      ' <- 保存する画像ファイル名。

            ' 取り出す画像ファイルの種類を設定。
            Dim Int_Picture_Save_Style As NSDAVI.PICTURE_SAVE_STYLE _
                                    = NSDAVI.PICTURE_SAVE_STYLE.BMP

            ' 1件データ読み込み前のイベントをセット。
            AddHandler ClsPrv_AVI.GetAVIPictureState, AddressOf GetAVIPictureState

            ' AVIファイルから画像ファイルを作成します。
            If ClsPrv_AVI.GetAVIToPicture(Str_FileName, _
                                          Str_FolderName, _
                                          Str_PicFile, _
                                          5, _
                                          Int_Picture_Save_Style) Then
                MsgBox("画像ファイルを取り出しました。")
            Else
                MsgBox("画像ファイルの取り出しに失敗しました。")
            End If

            ' 1件データ読み込み前のイベントを解除。
            RemoveHandler ClsPrv_AVI.GetAVIPictureState, AddressOf GetAVIPictureState
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub GetAVIPictureState(ByVal IntVal_ReadDataNo As Integer, _
                                   ByVal IntVal_TotalDataNo As Integer, _
                                   ByRef BlnRef_Stop As Boolean)
        Try
            Dim Str_Msg As String = "データ番号:" & CStr(IntVal_ReadDataNo) 
            Str_Msg &= "/" & CStr(IntVal_TotalDataNo - 1) & ControlChars.CrLf
            Str_Msg &= "中止しますか?"
            If MsgBox(Str_Msg, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
                ' 中止します。
                BlnRef_Stop = True
            End If
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:SetPictureToAVIState

構文:Public Event SetPictureToAVIState( SetDataNo , Stop )

機能:SetPictureToAVIで1件データを書き込む前に発生するイベント。

引数:

名前 引数渡しの方法 説明
SetDataNo Integer 値渡し(ByVal) 書き込みデータの番号を返します(0番から開始します)。
Stop Boolean 参照渡し(ByRef) AVIファイルの作成を中止するかを渡します。
True:中止 False:中止しません(既定値)

戻り値:なし。

使用例:

Public Class Form1
    ' NSDAVIを初期化します。
    Dim ClsPrv_AVI As New NSDAVI

    ' FormClosing.
    Private Sub Form1_FormClosing( _
                        ByVal sender As Object, _
                        ByVal e As System.Windows.Forms.FormClosingEventArgs) _
                        Handles Me.FormClosing
        Try
            ' AVI用リソースを解放します。
            ClsPrv_AVI.Cls_Dispose()
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
            ' 画像ファイルのフォルダ。
            Dim Str_Folder As String = "" ' <- 画像ファイルフォルダのフルパス名。
            ' 作成AVIファイル。
            Dim Str_AviFileName As String = "" ' <- 作成AVIファイル名。
            ' ストリーム情報を初期化します。
            Dim Strc_AviStreamInfo As NSDAVI.AVI_STREAMINFO = ClsPrv_AVI.GetDefaultAVISTREAMINFO

            Do
                ' folderにあるファイルを取得する。
                Dim Str_PicFileList As String()
                Dim Str_ExName As String = "bmp"
                Dim Int_PicIndex As NSDAVI.PICTURE_SAVE_STYLE = NSDAVI.PICTURE_SAVE_STYLE.BMP

                Str_PicFileList = System.IO.Directory.GetFiles(Str_Folder, "*." & Str_ExName)
                If (Str_PicFileList Is Nothing) Then
                    MsgBox("画像ファイルが存在しません。")
                    Exit Do
                End If
                ' 画像ファイル名をソートします。
                Array.Sort(Str_PicFileList)

                Dim Int_MsgNo As Integer = 0
                ' 1件書き込み前のイベントをセット。
                AddHandler ClsPrv_AVI.SetPictureToAVIState, AddressOf SetPictureToAVIState

                ' 圧縮なし。
                If ClsPrv_AVI.SetPictureToAVI(Str_PicFileList, Int_PicIndex, Str_AviFileName, Strc_AviStreamInfo) Then
                    MsgBox("AVIファイルを作成しました。")
                Else
                    MsgBox("AVIファイルの作成に失敗しました。")
                End If

                ' 1件書き込み前のイベントを解除。
                RemoveHandler ClsPrv_AVI.SetPictureToAVIState, AddressOf SetPictureToAVIState
            Loop While (0)
        Catch ex As Exception
        Finally
        End Try
    End Sub

    Private Sub SetPictureToAVIState(ByVal IntVal_SetDataNo As Integer, ByRef BlnRef_Stop As Boolean)
        Try
            Dim Str_Msg As String = "データ番号:" & CStr(IntVal_SetDataNo) & ControlChars.CrLf
            Str_Msg &= "中止しますか?"
            If MsgBox(Str_Msg, MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
                BlnRef_Stop = True
            End If
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

Copyright (C) 2009-2012 Nihon System Developer Corp. All Rights Reserved.