Задача 6.
Выполнить инверсию исходного рисунка (преобразование в «негатив»).
Решение (Visual Basic)
Достаточно очевидно, что для инверсии рисунка достаточно вычислить для каждого из основных цветов текущего пикселя «обратное» значение, равное разности: 255 - <исходное
значение>. Тогда листинг примет следующий вид.
Private Sub Command5_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 = 255 - rcol
gcol = 255 - gcol
bcol = 255 - bcol
Picture2.PSet (i, j), RGB(rcol, gcol, bcol)
Next j
Next i
End Sub