セピアカラーは、グレースケールに色を付けて少し鮮やかにしたものです。 グレースケールとほとんど変わらないのですが、使用するパレットが少し違いま す。パレット作成には、色々な方法があると思いますが、ここではプログラムを 組み立てやすいようにR,G,B値のどれかを基準値に設定し、その他の2つを変化 させ、256階調セピアカラーを作成しています。
★主な処理★
グレースケールと違う部分は、次のパレット作成部分のみです。 (このパレット作成のコードを変更することで色々なセピア色が表現できます)1ピクセルごとの色の変換は、グレースケールと同様に色の強さのみで行いま す。
'グレースケールの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
★クラスの使用法★
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でも問題なく動作すると思います。
なお、このコーナーに掲載されているプログラムコード、およびプログラムファ イルが原因で起きた損害などに関して一切の責任を負うことはできません。
★このコーナーに掲載されているプログラムコード、およびプログラムファ イルを無断で配布・転載することは、原則として禁止です。