【Class Library】


ビットマップをセピアカラーで保存
 セピアカラーは、グレースケールに色を付けて少し鮮やかにしたものです。 グレースケールとほとんど変わらないのですが、使用するパレットが少し違いま す。パレット作成には、色々な方法があると思いますが、ここではプログラムを 組み立てやすいようにR,G,B値のどれかを基準値に設定し、その他の2つを変化 させ、256階調セピアカラーを作成しています。


★主な処理★

 グレースケールと違う部分は、次のパレット作成部分のみです。 (このパレット作成のコードを変更することで色々なセピア色が表現できます)

    'グレースケールの256色のパレット作成
    For i = 0& To COLOR_COUNT_256 - 1&
        Pal(i).r = CByte(CSng(i) * CSng((255 - 132) / 255))
        Pal(i).g = CByte(CSng(i) * CSng((255 - 66) / 255))
        Pal(i).b = CByte(CSng(i) * CSng((255 - 0) / 255)) '基準値
    Next i

 1ピクセルごとの色の変換は、グレースケールと同様に色の強さのみで行いま す。


★クラスの使用法★

      
    Dim msg As String
    Dim cbc As New CBmpConvert

On Error GoTo GrayScale

    Me.MousePointer = 11
    Call cbc.BmpConvert256S(Picture1, Text1.Text, 0&, 0&, _
                            Picture1.Width, Picture1.Height)
    Me.MousePointer = 0
    Exit Sub

GrayScale:
    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

ダウンロード BmpConvertS.lzh(3.81KB)

Visual Basic Ver.5.0でも問題なく動作すると思います。
なお、このコーナーに掲載されているプログラムコード、およびプログラムファ イルが原因で起きた損害などに関して一切の責任を負うことはできません。

★このコーナーに掲載されているプログラムコード、およびプログラムファ イルを無断で配布・転載することは、原則として禁止です。


Class Libraryインデックス トップページ


Copyright(C)1999-2000 Tomoya. All rights reserved.