.NET 4.x Как изменить цвет пикселей во всем изображении? - Visual Basic .NET

Узнай цену своей работы

Формулировка задачи:

Всем знатокам доброго времени суток!

Вопрос, собственно, в заголовке. Условие задачи: Есть какое-то изображение. Требуется. 1) пройти по всем пикселям изображения, получить текущие значение цвета каждого пикселя 2) Изменить цвет указанных пикселей Спасибо за помощь и понимание.

Решение задачи: «.NET 4.x Как изменить цвет пикселей во всем изображении?»

textual
Листинг программы
Imports System.Drawing.Imaging
Imports System.IO
Public Class Form6
    Private src, bmp As Bitmap
    Private Sub Form6_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        bmp = New Bitmap(Path.Combine(Application.StartupPath, "clr1.jpg"))
        PictureBox1.Image = bmp
    End Sub
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        src = bmp.Clone
        toBW(TrackBar1.Value / 100)
        PictureBox2.Image = src
    End Sub
    Private Sub toBW(ByVal th As Single)
        Using gr As Graphics = Graphics.FromImage(src)
            Dim gray_matrix As Single()() = {
              New Single() {0.299F, 0.299F, 0.299F, 0, 0},
              New Single() {0.587F, 0.587F, 0.587F, 0, 0},
              New Single() {0.114F, 0.114F, 0.114F, 0, 0},
              New Single() {0, 0, 0, 1, 0},
              New Single() {0, 0, 0, 0, 1}
            }
            Dim ia As New System.Drawing.Imaging.ImageAttributes
            ia.SetColorMatrix(New System.Drawing.Imaging.ColorMatrix(gray_matrix))
            ia.SetThreshold(th)
            Dim rc As New Rectangle(0, 0, src.Width, src.Height)
            gr.DrawImage(src, rc, 0, 0, src.Width, src.Height, GraphicsUnit.Pixel, ia)
        End Using
    End Sub
End Class

Оцени полезность:

15   голосов , оценка 4.133 из 5
Похожие ответы