Upload
frank-jairo-castillo-padilla
View
213
Download
0
Embed Size (px)
DESCRIPTION
Diseño de Interfaz
Citation preview
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
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