Задача 7.
Выполнить преобразование цветного рисунка в полутоновой (оттенки серого).
Решение (Visual Basic)
Как мы знаем, серый цвет в системе RGB реализуется при равных значениях яркости всех трех основных цветовых составляющих, т.е. когда R = G = B. Но какую из них, полученную из исходного рисунка, выбрать в качестве «базовой»? Самый простой вариант ‒ вычислить их среднее арифметическое.
Private Sub Command6_Click()
Picture2.Height = Picture1.Height
Picture2.Width = Picture1.Width
Picture2.Cls
For i = 1 To Picture1.ScaleWidth
For j = 1 To Picture1.ScaleHeight
colpix = Picture1.Point(i, j)
rcol = colpix And &HFF
gcol = Int(colpix \ &H100) And &HFF
bcol = Int(colpix \ &H10000) And &HFF
monocolor = (rcol + gcol + bcol) \ 3
rcol = monocolor
gcol = monocolor
bcol = monocolor
Picture2.PSet (i, j), RGB(rcol, gcol, bcol)
Next j
Next i
End Sub