Visual BasicのSavePictureステートメントでは、問答無用に1677万色で保存 されてしまいます。そこでビットマップを指定色で保存できるプロシージャを 作り、それを利用しやすく?したものをここに掲載しました。 このクラスを使用すると、PictureBoxコントロールに描画されたものを16色, 256色,1677万色で保存することができます。
保存の処理は、単にフォーマットに従ってバイナリデータをファイルに出力 していくものです。API関数も一切使用していません。欠点は、とにかく遅いこ とです。とてもじゃないけど実用性は、ありません。プログラムコードもかな り汚くて、わかりにくいです。
とにかく16色,256色,1677万色で保存できるので、そんなものでよければ ダウンロードしてみて下さい。
★クラスの使用法★
サンプルを見て頂ければわかると思いますが、次のように指定して使います。
(下のものは16色で保存)
引数は順に、画像を保存したいPictureオブジェ,出力ファイル名,Pictureの幅,Pictureの高さです。
Dim msg As String Dim csb As New CBitmap On Error GoTo SAVE16 Me.MousePointer = 11 Call csb.SaveBitmap16(Picture1, Text1.Text, _ Picture1.Width, Picture1.Height) Me.MousePointer = 0 Exit Sub SAVE16: Me.MousePointer = 0 msg = Err.Description MsgBox msg, vbCritical
★使用上の注意★ このクラスのプロシージャは、ピクセル単位で取り扱っています。従って、 FormとPictureオブジェのScaleModeが3でなければなりません。 また、PictureオブジェのAppearanceを0,BorderStyleを0にしておいて下さい。
(サンプルプログラムの動作確認)
機種 PC-9821V13S OS Windows95 開発ツール Visual Basic Ver.4.0 更新日 99/10/10 ダウンロード SaveBitmap.lzh(5.23KB)
Visual Basic Ver.5.0,Ver.6.0でも問題なく動作すると思います。
なお、このコーナーに掲載されているプログラムコード、およびプログラムファ イルが原因で起きた損害などに関して一切の責任を負うことはできません。
★このコーナーに掲載されているプログラムコード、およびプログラムファ イルを無断で配布・転載することは、原則として禁止です。