К содержимому

Инверсия цветов (негатив)

Содержание номера · 13 из 18

Задача 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

Статья обрывается здесь. Весь номер — 18 статей — 190 ₽ (≈ 11 ₽ за статью), остаётся у вас навсегда.

Войти, чтобы купить
  1. 14 Преобразование цветного рисунка в монохромный
  2. 15 Выделение цветового канала
  3. 16 Выделение контуров изображения

Первая статья открыта всем — читать «Введение»