1
« en: Miércoles 9 de Febrero de 2011, 16:23 »
Hola compañeros, necesito realizar una pequeña clase de controles
para imágenes pero me están haciendo falta los efectos de Brillo
y Contraste. Si alguno me ayudara se lo agradecería. Para el Brillo
estoy usando este Proceso pero me da un error de "Memoria Insuficiente"
Gracias de ante mano.
''' <summary>
''' Proceso que Cambia Brillo de la Imagen
''' (PictureBox)
''' </summary>
Public Sub Brillo(ByVal pic As PictureBox, ByVal valor As Single)
Dim _image as Image
_image = pic.Image
Dim g As Graphics
Dim r As Rectangle
Dim v As Single = valor / 100
pic.Image = New Bitmap(pic.Width, pic.Height, PixelFormat.Format32bppArgb)
g = Graphics.FromImage(pic.Image)
r = New Rectangle(0, 0, pic.Width, pic.Height)
g.DrawImage(_image, r)
Dim colorMatrixVal As Single()() = {New Single() {1, 0, 0, 0, 0}, New Single() {0, 1, 0, 0, 0}, _
New Single() {0, 0, 1, 0, 0}, New Single() {0, 0, 0, 1, 0}, _
New Single() {v, v, v, 0, 1}}
Dim colorMatrix As New ColorMatrix(colorMatrixVal)
Dim ia As New ImageAttributes
ia.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap)
g.DrawImage(_image, r, 0, 0, _image.Width, _image.Height, GraphicsUnit.Pixel, ia)
pic.Refresh()
End Sub