NSD_AVI メンバ

AVIファイルの情報取得、ビデオストリームから画像ファイルの作成をします。
※画像ファイルの作成は無圧縮データとRLE8での圧縮データ以外では関数が失敗する場合があります。


●コンストラクタ

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

●メソッドの一覧

名前 引数 戻り値 説明
Dispose なし なし リソースの解放を行います。
※終了時に必ず呼び出します。
Dispose_AVIData なし なし NSD_AVI_DATAを解放します。
GetAviInfo ( String ) NSD_AVI_DATA()型 AVIの情報を取得します。
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型 AVIファイルから指定範囲のフレームを指定画像形式のファイルにします。
( String , String , String , Integer , PICTURE_SAVE_STYLE, NSD_AVI_DATA() ) Boolean型 AVIファイルから全フレームを指定画像形式のファイルにします。
( String , String , Integer , String , PICTURE_SAVE_STYLE, NSD_AVI_DATA() ) Boolean型 AVIファイルから指定フレームを指定画像形式のファイルにします。
( String , String , Integer , Integer , Integer , String , PICTURE_SAVE_STYLE, NSD_AVI_DATA() ) Boolean型 AVIファイルから指定範囲のフレームを指定画像形式のファイルにします。
GetErrorNo なし ErrorNo エラー番号を返します。
GetErrorMsg なし String型 エラーメッセージを返します。

●イベントの一覧

名前 引数 戻り値 説明
EventGetAVIToPictureOneData ( NSD_AVI_DATA , Boolean ) なし GetAVIToPictureで1データ取得時に発生するイベント。

●データ用クラスの一覧

名前:NSD_AVI_DATA

構文:

Public Class NSD_AVI_DATA
  Public Offset As Int64
  Public ID As Int32
  Public Name As String
  Public Size As Int32
  Public DataOffset As Int64
  Public Data As Object
  Public Child() As NSD_AVI_DATA
  Public Parent As NSD_AVI_DATA
End Class

内容:AVIデータ用クラス。

名前 説明
Offset Int64 先頭からのオフセット値。
ID Int32 ID(チャンク名)。
Name String IDを文字列に変更した値。
Size Int32 データサイズ。
DataOffset Int64 先頭からのデータオフセット値。
Data Object 各データ。
※画像、音声データは含まれません。
Child() NSD_AVI_DATA 子のデータ。
Parent NSD_AVI_DATA 親のデータ。

 

名前:NSD_AVI_MAIN_HEADER

構文:

Public Class NSD_AVI_MAIN_HEADER
  Public fcc As String
  Public cb As Int32
  Public dwMicroSecPerFrame As Int32
  Public dwMaxBytesPerSec As Int32
  Public dwPaddingGranularity As Int32
  Public dwFlags As Int32
  Public dwTotalFrames As Int32
  Public dwInitialFrames As Int32
  Public dwStreams As Int32
  Public dwSuggestedBufferSize As Int32
  Public dwWidth As Int32
  Public dwHeight As Int32
  Public dwReserved() As Int32
End Class

内容:AVIメインヘッダー情報。

名前 説明
fcc String FOURCC コード (avih)。
cb Int32 サイズ。
dwMicroSecPerFrame Int32 フレーム間の間隔をマイクロ秒単位で指定する。
dwMaxBytesPerSec Int32 ファイルの概算最大データ レートを指定する。
dwPaddingGranularity Int32 データのアライメントをバイト単位で指定する。
dwFlags Int32 フラグ。
dwTotalFrames Int32 ファイル内のデータのフレームの総数を指定する。
dwInitialFrames Int32 インターリーブされたファイルの開始フレームを指定する。
dwStreams Int32 ファイル内のストリーム数を指定する。
dwSuggestedBufferSize Int32 ファイルを読み取るためのバッファ サイズを指定する。
dwWidth Int32 AVI ファイルの幅を指定する (ピクセル単位)。
dwHeight Int32 AVI ファイルの高さを指定する (ピクセル単位)。
dwReserved() Int32 予約済み。

 

名前:NSD_AVI_OLD_INDEX

構文:

Public Class NSD_AVI_OLD_INDEX
  Public fcc As String
  Public cb As Int32
  Public Entry() As NSD_AVI_OLD_INDEX_ENTRY = Nothing
End Class

内容:AVI1.0インデックス(idx1)。

名前 説明
fcc String FOURCC コード (avih)。
cb Int32 サイズ。
Entry() NSD_AVI_OLD_INDEX_ENTRY Entryの配列。

 

名前:NSD_AVI_OLD_INDEX_ENTRY

構文:

Public Class NSD_AVI_OLD_INDEX_ENTRY
  Public fcc As String
  Public dwFlags As Int32
  Public dwOffset As Int32
  Public dwSize As Int32
End Class

内容:AviOldIndexEntry。

名前 説明
fcc String FOURCC コード。
  • db (Uncompressed video frame)
  • dc (Compressed video frame)
  • pc (Palette change)
  • wb (Audio data)
dwFlags Int32 組み合わせを示します。
  • AVIIF_KEYFRAME
  • AVIIF_LIST
  • AVIIF_NO_TIME
dwOffset Int32 データチャンクの場所でファイルを指定します。
dwSize Int32 データ チャンクのサイズ (バイト単位) を指定します。

 

名前:NSD_AVI_EXTHEADER

構文:

Public Class NSD_AVI_EXTHEADER
  Public fcc As String
  Public cb As Int32
  Public dwGrandFrames As Int32
  Public dwFuture(0 To 60) As Int32
End Class

内容:AVIEXTHEADER。

名前 説明
fcc String FOURCC コード (dmlh)。
cb Int32 サイズ。
dwGrandFrames IntPtr ファイル内のフレーム合計数。
dwFuture(0 To 60) Int32  

 

名前:NSD_AVI_SuperIndex

構文:

Public Class NSD_AVI_SuperIndex
    Public fcc As String
    Public cb As UInt16
    Public wLongsPerEntry As Int16
    Public bIndexSubType As Byte
    Public bIndexType As Byte
    Public nEntriesInUse As Int32
    Public ChunkId As String
    Public dwReserved(0 To 2) As Int32
    Public aIndex() As NSD_AviSuperIndex_Entry
End Class

内容:AviStdIndex。

名前 説明
fcc String FOURCC コード ('indx' or '##ix')。
cb UInt16 サイズ。
wLongsPerEntry Int16 = 2
bIndexSubType Byte = 0
bIndexType Byte AVI_INDEX_OF_CHUNKS
nEntriesInUse Int32 offset of next unused entry in aIndex.
ChunkId String chunk ID of chunks being indexed, (i.e. RGB8).
qwBaseOffset Int64 base offset that all index intries are relative to.
dwReserved_3 Int32 must be 0.
aIndex() NSD_AVI_STD_INDEX_ENTRY AviStdIndexEntry

 

名前:NSD_AVI_STD_INDEX_ENTRY

構文:

Public Class NSD_AVI_STD_INDEX_ENTRY
    Public dwOffset As Int32
    Public dwSize As Int32
End Class

内容:AviStdIndexEntry。

名前 説明
dwOffset Int32 32 bit offset to data (points to data, not riff header).
dwSize Int32 31 bit size of data (does not include size of riff header), bit 31 is deltaframe bit.

 

名前:NSD_AVI_STREAM_HEADER

構文:

Public Class NSD_AVI_STREAM_HEADER
    Public fcc As String
    Public cb As Int32
    Public fccType As Int32
    Public fccTypeName As String
    Public fccHandler As Int32
    Public fccHandlerName As String
    Public dwFlags As Int32
    Public wPriority As Int16
    Public wLanguage As Int16
    Public dwInitialFrames As Int32
    Public dwScale As Int32
    Public dwRate As Int32
    Public dwStart As Int32
    Public dwLength As Int32
    Public dwSuggestedBufferSize As Int32
    Public dwQuality As Int32
    Public dwSampleSize As Int32
    Public Frame_left As Int16
    Public Frame_top As Int16
    Public Frame_right As Int16
    Public Frame_bottom As Int16
End Class

内容:AVIストリームヘッダー。

名前 説明
fcc String FOURCC コード (strh)。
cb Int32 サイズ。
fccType Int32 ストリームに含まれるデータのタイプを指定する。
fccTypeName String ストリームに含まれるデータのタイプを指定する。
  • "auds" = オーディオ ストリーム
  • "mids" = MIDI ストリーム
  • "txts" = テキスト ストリーム
  • "vids" = ビデオ ストリーム
fccHandler Int32 特定のデータ ハンドラを示す。
fccHandlerName String 特定のデータ ハンドラを示す。
dwFlags Int32 フラグ。
wPriority Int16 ストリーム タイプの優先順位を指定する。
wLanguage Int16 ストリームの言語。
dwInitialFrames Int32 インターリーブされたファイルで、オーディオ データがビデオ フレームからどのくらいスキューされているかを指定する。
dwScale Int32 ストリームが使うタイム スケールを指定する。
dwRate Int32 dwRate / dwScale で1秒あたりのサンプル数。
dwStart Int32 ストリームの開始タイムを指定する。
dwLength Int32 ストリームの長さを指定する。
dwSuggestedBufferSize Int32 ストリームを読み取るために必要なバッファの大きさを指定する。
dwQuality Int32 ストリーム内のデータの品質を示す値を指定する。
dwSampleSize Int32 データの1サンプルのサイズを指定する。
Frame_left Int16 左上隅からのLeft位置。
Frame_top Int16 左上隅からのTop位置。
Frame_right Int16 左上隅からのRight位置。
Frame_bottom Int16 左上隅からのBottom位置。

 

名前:NSD_AVI_STREAM_FORMAT

構文:

Public Class NSD_AVI_STREAM_FORMAT
    Public fcc As String
    Public cb As Int32
    Public bmi As Object
End Class

内容:AVIストリームフォーマット。

名前 説明
fcc String FOURCC コード (strh)。
cb Int32 サイズ。
bmi Object ビデオストリームの場合は、ビットマップ情報
オーディオストリームの場合は、波形オーディオデータのフォーマット情報

 

名前:NSD_BITMAP_INFO

構文:

Public Class NSD_BITMAP_INFO
    Public bmiHeader As NSD_BITMAP_INFO_HEADER
    Public bmiColors() As NSD_RGB_QUAD
End Class

内容:ビットマップ情報。

名前 説明
bmiHeader NSD_BITMAP_INFO_HEADER ビットマップヘッダー情報。
bmiColors() NSD_RGB_QUAD 色情報。

 

名前:NSD_BITMAP_INFO_HEADER

構文:

Public Class NSD_BITMAP_INFO_HEADER
    Public biSize As Int32
    Public biWidth As Int32
    Public biHeight As Int32
    Public biPlanes As Int16
    Public biBitCount As Int16
    Public biCompression As Int32
    Public biSizeImage As Int32
    Public biXPelsPerMeter As Int32
    Public biYPelsPerMeter As Int32
    Public biClrUsed As Int32
    Public biClrImportant As Int32
End Class

内容:ビットマップヘッダー情報。

名前 説明
biSize Int32 サイズ。
biWidth Int32 ビットマップの幅(ピクセル単位)。
biHeight Int32 ビットマップの高さ(ピクセル単位)。
biPlanes Int16 プレーン数(常に1)。
biBitCount Int16 1ピクセルあたりのビット数を指定します。
biCompression Int32 圧縮形式を指定します。
biSizeImage Int32 画像サイズをバイト単位で指定します。
biXPelsPerMeter Int32 水平方向の解像度を指定します。
biYPelsPerMeter Int32 垂直方向の解像度を指定します。
biClrUsed Int32 色インデックスの数を指定します。
biClrImportant Int32 ビットマップを表示するのに必要なインデックス数。

 

名前:NSD_RGB_QUAD

構文:

Public Class NSD_RGB_QUAD
    Public rgbBlue As Byte
    Public rgbGreen As Byte
    Public rgbRed As Byte
    Public rgbReserved As Byte
End Class

内容:色情報。

名前 説明
rgbBlue Byte 青成分の値。
rgbGreen Byte 緑成分の値。
rgbRed Byte 赤成分の値。
rgbReserved Byte 予約(0を指定)。

 

名前:NSD_WAVEFORMATEX

構文:

Public Class NSD_WAVEFORMATEX
    Public wFormatTag As Int16
    Public nChannels As Int16
    Public nSamplesPerSec As Int32
    Public nAvgBytesPerSec As Int32
    Public nBlockAlign As Int16
    Public wBitsPerSample As Int16
    Public cbSize As Int16
End Class

内容:ビットマップヘッダー情報。

名前 説明
wFormatTag Int16 波形オーディオのフォーマットタイプ。
nChannels Int16 波形オーディオ データに含まれるチャンネル数。
nSamplesPerSec Int32 サンプル/秒で表すサンプルレート(単位 Hz)。
nAvgBytesPerSec Int32 フォーマットタグに必要な平均データ転送レート(単位 バイト/秒)。
nBlockAlign Int16 ブロックアラインメント(単位 バイト)。
wBitsPerSample Int16 wFormatTagフォーマットタイプの1サンプルあたりのビット数。
cbSize Int16 WAVEFORMATEX構造体の最後に追加される追加フォーマット情報のサイズ(単位バイト)。

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

構文:Public Sub New()

使用法:Dim ClsPrv_AVIData As New NSD_AVI

引数:なし。

使用例:

Public Class Form1
    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Dim Cls_AVIData As NSDAVI.NSD_AVI = Nothing
        Try
            Cls_AVIData = New NSDAVI.NSD_AVI
            Dim Cls_AVI_Info() As NSDAVI.NSD_AVI.NSD_AVI_DATA = Cls_AVIData.GetAviInfo("AVIファイル名")
            If Cls_AVI_Info Is Nothing) Then
                MsgBox("データ構造が確認できません。")
            Else
                   :
                ' AVIデータを解放します.
                Cls_AVIData.Dispose_AVIData(Cls_AVI_Info)
            End If
        Catch ex As Exception
        Finally
           If Not (Cls_AVIData Is Nothing) Then
               Cls_AVIData.Dispose()
               Cls_AVIData = Nothing
           End If
        End Try
    End Sub
End Class

●NSD_AVIメソッドの説明

名前:Dispose

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

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

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

引数:なし。

戻り値:なし。

使用例:

Public Class Form1
    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Dim Cls_AVIData As NSDAVI.NSD_AVI = Nothing
        Try
            Cls_AVIData = New NSDAVI.NSD_AVI
            Dim Cls_AVI_Info() As NSDAVI.NSD_AVI.NSD_AVI_DATA = Cls_AVIData.GetAviInfo("AVIファイル名")
            If Cls_AVI_Info Is Nothing) Then
                MsgBox("データ構造が確認できません。")
            Else
                   :
                ' AVIデータを解放します.
                Cls_AVIData.Dispose_AVIData(Cls_AVI_Info)
            End If
        Catch ex As Exception
        Finally
           If Not (Cls_AVIData Is Nothing) Then
               Cls_AVIData.Dispose()
               Cls_AVIData = Nothing
           End If
        End Try
    End Sub
End Class

 

名前:Dispose_AVIData

構文:Public Sub Dispose_AVIData( Cls_AVIData() )

機能:NSD_AVI_DATAを解放します。

引数:

名前 引数渡しの方法 説明
Cls_AVIData() NSD_AVI_DATA 参照渡し(ByRef) NSD_AVI_DATAの配列を渡します。

戻り値:なし。

使用例:

Public Class Form1
    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
           Using Cls_AVIData As New NSDAVI.NSD_AVI
               Dim Cls_AVI_Info() As NSDAVI.NSD_AVI.NSD_AVI_DATA = Cls_AVIData.GetAviInfo("AVIファイル名")
               If Cls_AVI_Info Is Nothing) Then
                   MsgBox("データ構造が確認できません。")
               Else
                   :
                   ' AVIデータを解放します.
                   Cls_AVIData.Dispose_AVIData(Cls_AVI_Info)
               End If
           End Using
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:GetAviInfo

構文:Public Function GetAviInfo( FileName ) As NSD_AVI_DATA()

機能:AVIの情報を取得します。

引数:

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

戻り値:NSD_AVI_DATA()

使用例:

Public Class Form1
       :
    Private Sub Button1_Click( _
                        ByVal sender As System.Object,  _
                        ByVal e As System.EventArgs) _
                        Handles Button1.Click
        Try
           Using Cls_AVIData As New NSDAVI.NSD_AVI
               Dim Cls_AVI_Info() As NSDAVI.NSD_AVI.NSD_AVI_DATA = Cls_AVIData.GetAviInfo("AVIファイル名")
               If Cls_AVI_Info Is Nothing) Then
                   MsgBox("データ構造が確認できません。")
               Else
                   ' TreeViewに表示します.
                   If Me.TreeView1.Nodes.Count <> 0 Then
                       Me.TreeView1.Nodes.Remove(Me.TreeView1.Nodes(0))
                   End If
                   For Int_Loop As Integer = 0 To Cls_AVI_Info.Length - 1
                       SetDataTreeView(Cls_AVI_Info(Int_Loop), Me.TreeView1.Nodes)
                   Next
                   :
                   ' AVIデータを解放します.
                   Cls_AVIData.Dispose_AVIData(Cls_AVI_Info)
               End If
           End Using
        Catch ex As Exception
        Finally
        End Try
    End Sub

    ' データをTreeViewにセットします.
    Private Sub SetDataTreeView( _
                    ByVal ClsVal_AVIInfo As NSDAVI.NSD_AVI.NSD_AVI_DATA, _
                    ByRef ClsRef_Node As TreeNodeCollection)
        Try
            Dim Str_Text As String = Nothing
            With ClsVal_AVIInfo
                Str_Text = .Name
                If TypeOf .Data Is String Then
                    Str_Text &= " " & .Data
                End If
                Str_Text &= " Offset:" & .Offset.ToString() & " Size:" & .Size.ToString()
                Dim Cls_Node As TreeNode = ClsRef_Node.Add(Str_Text)
                If Not .Child Is Nothing Then
                    ' 子が存在します.
                    For Int_Loop As Integer = 0 To .Child.Length - 1
                        SetDataTreeView(.Child(Int_Loop), Cls_Node.Nodes)
                    Next
                End If
            End With
        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

 

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

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

引数:

名前 引数渡しの方法 説明
AVIFileName String 値渡し(ByVal) AVIファイルのフルパス名を渡します。
SaveFolder String 値渡し(ByVal) ファイルを保存するフォルダをフルパス名で渡します。
FileName String 値渡し(ByVal) ファイル名(拡張子なし)を渡します。
Figure Integer 値渡し(ByVal) 連番の桁数を渡します。
PicStyle PICTURE_SAVE_STYLE 値渡し(ByVal) 保存する画像形式を渡します。
Cls_AVI_Info() NSD_AVI_DATA 値渡し(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_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
            Dim Cls_AVI_Info() As NSDAVI.NSD_AVI.NSD_AVI_DATA = ClsPrv_AVI.GetAviInfo(Me.Txt_AVIFile.Text)
            If ClsPrv_AVI.GetAVIToPicture(Str_FileName, _
                                          Str_FolderName, _
                                          Str_PicFile, _
                                          5, _
                                          Int_Picture_Save_Style, _
                                          Cls_AVI_Info) Then
                MsgBox("画像ファイルを取り出しました。")
            Else
                MsgBox("画像ファイルの取り出しに失敗しました。")
            End If
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

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

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

引数:

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

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

Cls_AVI_Info() NSD_AVI_DATA 値渡し(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_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
            Dim Cls_AVI_Info() As NSDAVI.NSD_AVI.NSD_AVI_DATA = ClsPrv_AVI.GetAviInfo(Me.Txt_AVIFile.Text)
            If ClsPrv_AVI.GetAVIToPicture(Str_FileName, _
                                          Str_FolderName, _
                                          0, _
                                          Str_PicFile, _
                                          Int_Picture_Save_Style, _
                                          Cls_AVI_Info) Then
                MsgBox("画像ファイルを取り出しました。")
            Else
                MsgBox("画像ファイルの取り出しに失敗しました。")
            End If
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

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

構文:Public Overloads Function GetAVIToPicture( AVIFileName , SaveFolder , StartNo , EndNo , Figure , FileName , PicStyle , Cls_AVI_Info() ) 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) 保存する画像形式を渡します。
Cls_AVI_Info() NSD_AVI_DATA 値渡し(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_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
            Dim Cls_AVI_Info() As NSDAVI.NSD_AVI.NSD_AVI_DATA = ClsPrv_AVI.GetAviInfo(Me.Txt_AVIFile.Text)
            If ClsPrv_AVI.GetAVIToPicture(Str_FileName, _
                                          Str_FolderName, _
                                          0, _
                                          -1, _
                                          5, _
                                          Str_PicFile, _
                                          Int_Picture_Save_Style, _
                                          Cls_AVI_Info) Then
                MsgBox("画像ファイルを取り出しました。")
            Else
                MsgBox("画像ファイルの取り出しに失敗しました。")
            End If
        Catch ex As Exception
        Finally
        End Try
    End Sub
End Class

 

名前:GetErrorNo

構文:Public Function GetErrorNo() As ErrorNo

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

引数:なし。

戻り値:ErrorNo

戻り値の説明:

エラー番号を返します。

使用例:

Public Class Form1
       :
    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
            Using Cls_AVIData As New NSDAVI.NSD_AVI
                If Cls_AVIData.GetAVIToPicture(Str_FileName, _
                                               Str_FolderName, _
                                               Str_PicFile, _
                                               5, _
                                               Int_Picture_Save_Style) Then
                    MsgBox("画像ファイルを取り出しました。")
                Else
                    MsgBox("画像ファイルの取り出しに失敗しました。 エラー番号:" & CStr(Cls_AVIData.GetErrorNo()))
                End If
            End Using
        Catch ex As Exception
        Finally
        End Try
    End Sub
       :
End Class

 

名前:GetErrorMsg

構文:Public Function GetErrorMsg() As String

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

引数:なし。

戻り値:String

戻り値の説明:

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

使用例:

Public Class Form1
       :
    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
            Using Cls_AVIData As New NSDAVI.NSD_AVI
                If Cls_AVIData.GetAVIToPicture(Str_FileName, _
                                               Str_FolderName, _
                                               Str_PicFile, _
                                               5, _
                                               Int_Picture_Save_Style) Then
                    MsgBox("画像ファイルを取り出しました。")
                Else
                    MsgBox("画像ファイルの取り出しに失敗しました。" & ControlChars.CrLf & Cls_AVIData.GetErrorMsg())
                End If
            End Using
        Catch ex As Exception
        Finally
        End Try
    End Sub
       :
End Class

●NSD_AVIイベントの説明

 

名前:EventGetAVIToPictureOneData

構文:Public Event EventGetAVIToPictureOneData( Cls_AviData , Stop )

機能:GetAVIToPictureで1データ取得時に発生するイベント。

引数:

名前 引数渡しの方法 説明
Cls_AviData NSD_AVI_DATA 値渡し(ByVal) AVIの1データを渡します。
Stop Boolean 参照渡し(ByRef) 取得を中止するかを渡します。
True:中止 False:中止しません(既定値)

戻り値:なし。

使用例:

Public Class Form1
       :
    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
            Using Cls_AVIData As New NSDAVI.NSD_AVI
                AddHandler Cls_AVIData.EventGetAVIToPictureOneData, AddressOf GetAVIToPictureOneData
                Try
                    If Cls_AVIData.GetAVIToPicture(Str_FileName, _
                                                   Str_FolderName, _
                                                   Str_PicFile, _
                                                   5, _
                                                   Int_Picture_Save_Style) Then
                        MsgBox("画像ファイルを取り出しました。")
                    Else
                        MsgBox("画像ファイルの取り出しに失敗しました。")
                    End If
                Catch ex As Exception
                Finally
                    RemoveHandler Cls_AVIData.EventGetAVIToPictureOneData, AddressOf GetAVIToPictureOneData
                End Try
            End Using
        Catch ex As Exception
        Finally
        End Try
    End Sub
       :
   Public Sub GetAVIToPictureOneData(ByVal ClsVal_AviData As NSDAVI.NSD_AVI.NSD_AVI_DATA, _
                                     ByRef BlnRef_Stop As Boolean)
       Application.DoEvents()
   End Sub
End Class

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