Задача 4.
Реализовать изменение гаммы изображения (например, усиления красного цвета).
Решение (Visual Basic)
Для изменения гаммы изображения требуется увеличивать или уменьшать яркость отдельных составляющих ‒ R, G или B. Так, для усиления красного цвета нужно увеличить значение составляющей R, а значения составляющих G и B, наоборот, уменьшить.
Здесь в программе уже требуется контроль получаемых при уменьшении значений составляющих: если значение меньше нуля, то его надо приравнять нулю.
Программа при этом получает следующий вид, а получаемый результат показан на рис. 13.
Private Sub Command3_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
rcol = rcol + 100
gcol = gcol - 100: If gcol < 0 Then gcol = 0
bcol = bcol - 100: If bcol < 0 Then bcol = 0
Picture2.PSet (i, j), RGB(rcol, gcol, bcol)
Next j
Next i
End Sub