- ホーム
- clGdiPlus
- 画像処理のさわり
画像処理のさわり
リファレンスに載っていた例をアレンジしたものです。色調を変更します。
Sub colorChange()
Dim srcfile As String, destFile As String
Dim clGdip As clgdiplus
Dim imageObject As Object
Dim retBool As Boolean
' ピクセル色成分を受け取る配列
Dim lPixels() As Byte
' カウンタ
Dim lCptX As Long, lCptY As Long
Dim colorRed As Long, colorGreen As Long, colorBlue As Long
Set clGdip = New clgdiplus
srcfile = "C:\src.bmp"
destFile = "C:\dest.jpg"
On Error Resume Next
' 新しいファイルを開く
retBool = clGdip.OpenFile(srcfile)
' ピクセル色成分を配列に取得
lPixels = clGdip.GetPixels
' Debug.Print UBound(lPixels, 2) '解像度取得
' Debug.Print UBound(lPixels, 3)
' ピクセル単位でループ
For lCptX = 1 To UBound(lPixels(), 2)
For lCptY = 1 To UBound(lPixels(), 3)
' 赤の色成分だけ残し、青と緑の色成分を 0 に変更します
' 青の色成分を削除
lPixels(1, lCptX, lCptY) = 0
' 緑の色成分を削除
lPixels(2, lCptX, lCptY) = 0
' 色成分 青 = lPixels(1, lCptX, lCptY)
' 色成分 緑 = lPixels(2, lCptX, lCptY)
' 色成分 赤 = lPixels(3, lCptX, lCptY)
' 色成分 不透明度 = lPixels(4, lCptX, lCptY)
Next
Next
' 画像の色成分を設定
clGdip.SetPixels lPixels
retBool = clGdip.SaveFile(destFile, "JPG")
Set clGdip = Nothing
End Sub