PictureBox изменить яркость и контрастность картинки - Visual Basic .NET

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

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

Элемент управления PicterBox как задать программно сохранение картинки с параметрами яркость, контрастность и другие характеристики при редактировании изображения? Спасибо.

Решение задачи: «PictureBox изменить яркость и контрастность картинки»

textual
Листинг программы
Imports System.Drawing.Imaging
Public Class Form2
    Private bmp, bmp2 As Bitmap
    Private rr, gg, bb, gm As Single
    Private isLoad As Boolean
    Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        bmp = loadBitmap("tst3.jpg")
        If bmp IsNot Nothing Then
            bmp2 = bmp.Clone
            PictureBox1.Image = bmp
            PictureBox2.Image = bmp2
            TrackBar1.Minimum = 0
            TrackBar1.Maximum = 50
            TrackBar1.Value = 10
            TrackBar2.Minimum = 1
            TrackBar2.Maximum = 50
            TrackBar2.Value = 10
            isLoad = True
        End If
    End Sub
    Private Function loadBitmap(ByVal fileName As String) As Bitmap
        If Not IO.File.Exists(fileName) Then Return Nothing
        Using bm As Bitmap = New Bitmap(fileName)
            Return New Bitmap(bm)
        End Using
    End Function
    Private Sub TrackBar1_ValueChanged(sender As System.Object, e As System.EventArgs) Handles TrackBar1.ValueChanged
        rr = TrackBar1.Value / 10
        Label2.Text = rr.ToString
    End Sub
    Private Sub BrightnessGamma_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
        PictureBox2.Image = colorProcessing(bmp2, rr, rr, rr, gm)
    End Sub
    Private Function colorProcessing(ByVal img As Bitmap, ByVal rr As Single, ByVal gg As Single, ByVal bb As Single, ByVal Gamma As Single) As Bitmap
        Dim copy As Bitmap = New Bitmap(img.Width, img.Height)
        Dim ia As ImageAttributes = New ImageAttributes
        Dim myColorMatrix As New ColorMatrix
        With myColorMatrix
            .Matrix00 = rr
            .Matrix11 = gg
            .Matrix22 = bb
            .Matrix33 = 1.0
            .Matrix44 = 1.0
        End With
        ia.SetColorMatrix(myColorMatrix)
        ia.SetGamma(Gamma)
        Dim g As Graphics = Graphics.FromImage(copy)
        g.DrawImage(img, New Rectangle(0, 0, img.Width, img.Height), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel, ia)
        g.Dispose()
        Return copy
    End Function
    Private Sub TrackBar2_ValueChanged(sender As System.Object, e As System.EventArgs) Handles TrackBar2.ValueChanged
        gm = TrackBar2.Value / 10
        Label3.Text = gm.ToString
    End Sub
End Class

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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