3
CARGANDO UNA MATRIZ CON RGB HOLA QUERIDO LECTOR!, ESTA VEZ LE MOSTRARE COMO CARGAR UNA MATRIZ CON INFORMACIÓN RGB DE LOS PIXELES, ES RECOMENDABLE QUE SI VAN A REALIZAR EL EJERCICIO TAL CUAL COMO SE MUESTRA LO INSERTEN ENTERO EN EL CODIGO DE UN FORMULARIO Y LE AGREGUEN LO CONTROLES SIGUIENTES: UN OPENFILEDIALOG LLEMADO OpenFileDialog1 UN BOTON LLAMADO Button1 DOS LISTBOX LLAMADOS ListBox1 Y ListBox2 RESPECTIVAMENTE DOS TEXTBOX LLAMADOS TextBox1 Y TextBox2 RESPECTIVAMENTE Dim Alto As Int32 Dim Ancho As Int32 Dim Archivo As String Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 'PRIMERO MOSTRAMOS EL CUADRO DE DIALOGO ABRIR ARCHIVO Me.OpenFileDialog1.ShowDialog() 'LUEGO DE HABERSE CLICKEADO EL BOTON ACEPTAR SE INICIA NUESTRO ALGORITMO PARA CARGAR LA IMAGEN 'Y REALIZAR OTRAS COSILLAS COMO CARGAR LA MATRIZ If Me.OpenFileDialog1.ShowDialog = DialogResult.OK Then 'CARGAMOS UN OBJETO BITMAP CON LA IMAGEN Dim bmp As Bitmap = Bitmap.FromFile(Me.OpenFileDialog1.FileName) 'ALMACENAMOS EL NOMBRE DEL ARCHIVO, EL ALTO Y EL ANCHO DE LA IMAGEN EN PIXELES Archivo = Me.OpenFileDialog1.FileName Alto = bmp.Height Ancho = bmp.Width 'UTILIZAMOS EL DISPOSITIVO GRAPHICS DEL FORMULARIO Dim gr As Graphics = Me.CreateGraphics gr.DrawImage(bmp, 0, 0) 'CREAMOS VARIABLES PARA RECORRER LOS PIXELES DE LA IMAGEN

Cargando Una Matriz Con Rgb

Embed Size (px)

DESCRIPTION

Diseño de Interfaz

Citation preview

Page 1: Cargando Una Matriz Con Rgb

CARGANDO UNA MATRIZ CON RGB

HOLA QUERIDO LECTOR!, ESTA VEZ LE MOSTRARE COMO CARGAR UNA MATRIZ CON INFORMACIÓN RGB DE LOS PIXELES, ES RECOMENDABLE QUE SI VAN A REALIZAR EL EJERCICIO TAL CUAL COMO SE MUESTRA LO INSERTEN ENTERO EN EL CODIGO DE UN FORMULARIO Y LE AGREGUEN LO CONTROLES SIGUIENTES:UN OPENFILEDIALOG LLEMADO OpenFileDialog1UN BOTON LLAMADO Button1DOS LISTBOX LLAMADOS ListBox1 Y ListBox2 RESPECTIVAMENTEDOS TEXTBOX LLAMADOS TextBox1 Y TextBox2 RESPECTIVAMENTE

Dim Alto As Int32 Dim Ancho As Int32 Dim Archivo As String

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 'PRIMERO MOSTRAMOS EL CUADRO DE DIALOGO ABRIR ARCHIVO Me.OpenFileDialog1.ShowDialog()'LUEGO DE HABERSE CLICKEADO EL BOTON ACEPTAR SE INICIA NUESTRO ALGORITMO PARA CARGAR LA IMAGEN 'Y REALIZAR OTRAS COSILLAS COMO CARGAR LA MATRIZ If Me.OpenFileDialog1.ShowDialog = DialogResult.OK Then 'CARGAMOS UN OBJETO BITMAP CON LA IMAGEN Dim bmp As Bitmap = Bitmap.FromFile(Me.OpenFileDialog1.FileName) 'ALMACENAMOS EL NOMBRE DEL ARCHIVO, EL ALTO Y EL ANCHO DE LA IMAGEN EN PIXELES Archivo = Me.OpenFileDialog1.FileName Alto = bmp.Height Ancho = bmp.Width 'UTILIZAMOS EL DISPOSITIVO GRAPHICS DEL FORMULARIO Dim gr As Graphics = Me.CreateGraphics gr.DrawImage(bmp, 0, 0) 'CREAMOS VARIABLES PARA RECORRER LOS PIXELES DE LA IMAGEN Dim i As Integer Dim j As Integer 'CREAMOS LAS MATRICES QUE CONTENDRAN LA INFORMACIÓN DE LOS PIXELES Dim ColeccionPixel(Ancho - 1)() As RGB Dim MatrixColeccion(Alto - 1) As RGB 'RECORREMOS LA IMAGEN Y ALMACENAMOS CADA PIXEL,PRIMERO POR COLUMNAS Y LUEGO POR FILAS For i = 0 To Ancho - 1 For j = 0 To Alto - 1 Dim Pixel As New RGB(bmp.GetPixel(i, j).R, bmp.GetPixel(i, j).G, bmp.GetPixel(i, j).B) MatrixColeccion(j) = Pixel

Page 2: Cargando Una Matriz Con Rgb

Next ColeccionPixel(i) = MatrixColeccion Next 'LIBERAMOS RECURSOS bmp.Dispose() gr.Dispose() TextBox1.Text = Alto TextBox2.Text = Ancho 'MOSTRAMOS LA INFORMACIÓN DE NUESTRAS MATRICES EN CUADRO DE LISTA For i = 0 To Ancho - 1 For j = 0 To Alto - 1 ListBox1.Items.Add(i.ToString & " , " & j.ToString) ListBox2.Items.Add(ColeccionPixel(i)(j).R.ToString & ";" & ColeccionPixel(i)(j).G.ToString & ";" & ColeccionPixel(i)(j).B) Next Next End If End Sub

Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint 'PARA EVITAR PERDER LA IMAGEN CUANDO OCURRA EL EVENTO PAINT, LA DIBUJAMOS CADA VEZ QUE OCURRA ESTE If Not (Archivo = "") Then Dim bmp As Bitmap = Bitmap.FromFile(Archivo) Alto = bmp.Height Ancho = bmp.Width Dim gr As Graphics = Me.CreateGraphics gr.DrawImage(bmp, 0, 0) bmp.Dispose() gr.Dispose() End If End Sub

Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged 'HACEMOS QUE EL INDICE DEL CUADRO DE LISTA RGB COINCIDA CON EL DE LOS PIXELES Me.ListBox2.SelectedIndex = Me.ListBox1.SelectedIndex End Sub Structure RGB 'ESTA ES NUESTRA ESTRUCTURA CON SU METODO PARA CARGAR LOS CAMPOS Dim R, G, B As Integer Sub New(ByVal R1 As Integer, ByVal G1 As Integer, ByVal B1 As Integer) R = R1 G = G1 B = B1 End Sub End Structure

End Class