画像処理ソリューション
これを見れば画像処理の入門から基礎~応用まで全てがわかるのを目指して!
   
翻訳(Translate)

プロフィール

Akira

ニックネーム:Akira
東京都の町田事業所に勤務
画像処理ソフトの開発を行っています。リンクフリーです!
詳細プロフィールは こちら
お問い合わせは、こちら↓

【補助HP】
画像処理ソリューションWeb版 【Newブログ】
イメージングソリューション

スポンサーリンク


カテゴリ

最近のコメント

カレンダー

03 | 2017/04 | 05
S M T W T F S
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -

趣味のブログ

iPhone萬歳!
iPhoneの情報いろいろ。
ブログ学習帳
ブログ、SEO、アフィリエイト情報など(まだまだこれから)
俺流クラフト日記
ハンドメイド作品の記録(現在、放置中)

スポンサーリンク 最近の記事
(09/18)  計測測定展に光切断のデモを出展しました
(08/17)  ディジタル画像技術事典200に記事が載りました
(06/09)  光切断を画像センシング展で公開
(05/14)  中国(上海)へ行って来ました
(04/12)  韓国へ行って来ました
(03/10)  私の求める新人像
(01/18)  エレクトロテストジャパンにカラー光切断法のデモを出展しました。
(12/23)  ユニークアクセス200万達成!
(12/10)  【カラー光切断法】YouTube動画まとめ
(11/04)  国際画像機器展2014にカラー光切断法を出展します。
(10/05)  第25回コンピュータビジョン勉強会@関東に参加してきました。
(09/08)  フーリエ変換の記事を追加しました。
(08/09)  【画像処理】ランキング低下中
(07/06)  記事の更新が停滞中...
(06/08)  画像センシング展2014でカラー光切断法のデモを行います。
(05/17)  カラー光切断法の動画を公開しました。
(04/30)  ソニーα NEX-5Rで星空撮影
(04/10)  カラー光切断法の取込結果を追加しました
(03/08)  Korea Vision Show 2014へ行ってきました
(02/05)  フーリエ変換シリーズを始めます。
(01/06)  2014年、あけましておめでとうございます。
(12/04)  カラー光切断法を公開(国際画像機器展2013にて)
(11/13)  国際画像機器展2013に出展します
(10/14)  「画像処理のためのC#」はじめます。
(09/16)  【C#,VB.NET】高速描画コントロールをバージョンアップしました。
(09/04)  拡大鏡に輝度値表示、ルーラー機能を追加した個人ツールを公開
(08/05)  7月の拍手Top5
(07/06)  2013年6月人気記事Top5
(05/12)  SONY α NEX-5Rレビュー
(04/24)  SONY α NEX-5RY購入

VB6.0でビットマップファイルを開く

 目次ページへ

以前までVB6.0で画像処理をしていた時に標準的に使っていたビットマップファイルから画像データを取得するプログラムの公開したいと思います。

ビットマップファイル(*.bmp)であれば、モノクロ、カラー、8Bit、16Bitなど、ほぼ全てのビットマップファイルを開くことができると思います。

VB6.0のサンプルプログラムはこんなイメージです。
VB6.0でビットマップファイルを開く

サンプルプログラムはこちら(右クリック⇒対象をファイルに保存)からダウンロードできます。

ビットマップファイルを開くには、ビットマップファイルフォーマットについては事前にご理解下さい。

ビットマップファイルのバイナリデータを取得している部分のプログラムはこんな感じ↓です。

'//---------------------------------------------------------------
'//【関数名 】:LoadBitmapData
'//【処理概要】:ピットマップファイルデータの読込
'//【引数  】:strBitmapFileName  = ビットマップのファイルネーム
'//      :lpFileFeader       = ビットマップファイルのBITMAPFILEHEADER(戻り)
'//      :lpBitsInfo         = ビットマップファイルのBITMAPINFO(戻り)
'//      :lpBits()           = ビットマップファイルの画像データ配列(戻り)
'//【戻り値 】:0 = 正常終了
'//      :-1 = ファイル読込失敗
'//【備考  】:
'//      :
'//---------------------------------------------------------------
Public Function LoadBitmapData(strBitmapFileName As String, lpFileHeader As BITMAPFILEHEADER, lpBitsInfo As BITMAPINFO, lpBits() As Byte) As Long

    Dim i   As Integer
    Dim ret As Long
    Dim No  As Integer
   
    '戻り値の初期値
    LoadBitmapData = -1

    'ファイル名が指定されなかった場合
    If (strBitmapFileName = "") Then Exit Function
   
    If LCase(Right(strBitmapFileName, 3)) = "bmp" Then
        'ファイルがビットマップファイルのとき

        'ビットマップファイルをバイナリで開く
        No = FreeFile()
        Open strBitmapFileName For Binary As #No
       
            Get #No, , lpFileHeader
            If lpFileHeader.bfType <> &H4D42 Then   
' BM
                'ビットマップではない
                MsgBox "ビットマップファイル形式ではありません。"
               
Close
                Exit Function
            End If

            Get #No, , lpBitsInfo.bmiHeader
            With lpBitsInfo.bmiHeader
                If lpFileHeader.bfOffBits <> Len(lpFileHeader) + Len(lpBitsInfo.bmiHeader) Then
'カラーテーブルにデータがあるとき
                   
'8Bit以下の場合カラーテーブルを読み込む
                    Get #No, , lpBitsInfo.bmiColors
               
End If 
                ' バイト数を計算(4バイト単位幅)
       ReDim lpBits(((.biWidth * .biBitCount + 31) \ 32) * 4 - 1, Abs(.biHeight) - 1) As Byte             
            End With 
            ' ピクセルビットのポインタへ移動
            Seek
#No, lpFileHeader.bfOffBits + 1  
 
            Get #No, , lpBits
        Close #No

    End If

    '正常終了
    LoadBitmapData = 0
   
    Exit Function
       
LoadFileError:
   
'エラー処理
    MsgBox "ファイル " & strBitmapFileName & " を読み込めません。"
End Function



Loading...
スポンサーリンク

この記事に対するコメント

この記事に対するコメントの投稿














管理者にだけ表示を許可する


この記事に対するトラックバック
トラックバックURL
→http://imagingsolution.blog107.fc2.com/tb.php/49-8a02968b
この記事にトラックバックする(FC2ブログユーザー)

現在の閲覧者数: / 合計