TODOPIC

Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: LordLafebre en 05 de Marzo de 2012, 18:11:29

Título: como determinar el color de un pixel de un picturebox en Visual basic 2010
Publicado por: LordLafebre en 05 de Marzo de 2012, 18:11:29
Hola amigos:

Tanto tiempo :)

se hace difícil poder escribir en los foros últimamente :(

Bueno, luego de buscar algo de como hacer esto, pues pido un poco de ayuda, estoy intentando hacer un programita que me permita determinar el color de un pixel de un Picturebox en formato RGB Visual Basic 2010, en la version 6.0 es sencillo:

Color = Picture1.Point

en donde Point: Devuelve, como un valor de tipo Integer Long, el color rojo-verde-azul (RGB) delpunto especificado de un objeto Form o un control PictureBox.

No hay o no he podido encontrar una función equivalente en VB 2010, ¿alguien tiene alguna idea de como hacerlo?

Saludos.
Título: Re: como determinar el color de un pixel de un picturebox en Visual basic 2010
Publicado por: LordLafebre en 05 de Marzo de 2012, 18:21:11
por si alguien se pregunta que quiero hacer o simplemente puede que haya una forma más sencilla de hacerlo XD:

Mi programa en VB 6.0 convierte una imagen de colores a una imagen monocromática, y luego los valores de los píxeles, negros y blancos, lo envío a un GLCD, para dibujar la misma imagen, en otras palabras intento hacer esto que ya tengo en VB 6.0


Pero ahora lo quiero hacer en VB 2010

 8)
Título: Re: como determinar el color de un pixel de un picturebox en Visual basic 2010
Publicado por: PalitroqueZ en 05 de Marzo de 2012, 23:11:35
Hola Giovanni, tiempo sin saber de tí  :)

yo tampoco he tenido tiempo para dedicarle al vb2010 (y eso que lo tengo instalado en mi pc)


por aquí hicieron (y respondieron) una pregunta similar:

http://www.vbforums.com/showthread.php?t=505009

Título: Re: como determinar el color de un pixel de un picturebox en Visual basic 2010
Publicado por: LordLafebre en 06 de Marzo de 2012, 01:05:25
Hola Pedro,

muchas gracias por el link, lo voy a revisar, me toca mañana porque en esta compu no puedo instalar el VB 2010, un problema con permisos de administrador que me tiene loco y no puedo modificar ni borrar la librería mscorre.dll  :5],  y a ver si puedo estar algo más activo en el foro luego de tanto tiempo.

Saludos
Título: Re: como determinar el color de un pixel de un picturebox en Visual basic 2010
Publicado por: LordLafebre en 06 de Marzo de 2012, 19:20:56
Hola:

Bueno, ahora que miro el ejemplo, el código de la página que pusiste, está en función de una imagen creada, no es un PictureBox y no posee la propiedad getpixel ni setpixel, uso el PictureBox, pues es ahí en donde estoy cargando la imagen.

El código original del link es:

        For X = 0 To Picture1.ScaleWidth
           For y = 0 To Picture1.ScaleHeight
                If Picture1.Point(X, y) <> vbBlack Then
                    Picture1.PSet (X, y), vbWhite
                End If
            Next y
        Next X

Nota que trabaja con un control Picture.

y quien da la solución, lo que hace es crear un mapa de bits, sin partir de un control PictureBox

dim img as new bitmap(filename)
For X = 0 To img.Width
     For y = 0 To img.Height
          If img.getpixel(X, y) <> color.Black Then
             img.setpixel(x,y, color.white)
          End If
     Next y
Next X

No se si haya alguna otra forma de hacerlo, sigo sin encontrar solución en Google XD.

Saludos
Título: Re: como determinar el color de un pixel de un picturebox en Visual basic 2010
Publicado por: sanpic en 07 de Marzo de 2012, 08:03:27
Que gusto poder leerte nuevamente.    :)
Un abrazo Gio
Título: Re: como determinar el color de un pixel de un picturebox en Visual basic 2010
Publicado por: LordLafebre en 07 de Marzo de 2012, 16:43:33
Hey Roberto, tanto tiempo, un fuerte abrazo amigo.
Título: Re: como determinar el color de un pixel de un picturebox en Visual basic 2010
Publicado por: LordLafebre en 07 de Marzo de 2012, 19:35:09
Hola:

Pues bueno, como en viejos tiempos, BrunoF nuevamente me ha ayudado con el código  :)

Código: vb.net
  1. Public Class Form1
  2.  
  3.     Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  4.         PictureBox1.Image = New Bitmap("C:\oleo.jpg")
  5.     End Sub
  6.  
  7.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  8.         ScanSendImage(PictureBox1.Image)
  9.         PictureBox1.Refresh()
  10.     End Sub
  11.  
  12.     Private Function ScanSendImage(ByRef aBitmap As Bitmap) As Array
  13.         Dim i As Integer, j As Integer
  14.         Dim ColorActual As Integer
  15.  
  16.         Dim Colores(aBitmap.Width - 1, aBitmap.Height - 1) As Boolean
  17.  
  18.         For i = 0 To aBitmap.Width - 1
  19.             For j = 0 To aBitmap.Height - 1
  20.                 ColorActual = aBitmap.GetPixel(i, j).ToArgb()
  21.                 If Math.Abs(ColorActual) < RGB(128, 128, 128) Then
  22.                     Colores(i, j) = False
  23.                     aBitmap.SetPixel(i, j, Color.White)
  24.                 Else
  25.                     Colores(i, j) = True
  26.                     aBitmap.SetPixel(i, j, Color.Black)
  27.                 End If
  28.             Next
  29.         Next
  30.         Return Colores
  31.     End Function
  32. End Class
Título: Re: como determinar el color de un pixel de un picturebox en Visual basic 2010
Publicado por: willyfv en 24 de Agosto de 2012, 00:05:13
Buenas noches amigo LordLafebre, desde hace días me tope con este código muy interesante y los estoy aplicando para convertir las imágenes a blanco y negro, aquí viene mi duda:

Me gustaría saber si lees las posiciones (X, Y)  junto con el valor del pixel y como los haces o solamente el valor del pixel? tienes a disposición el código?

lo que quiero hacer es cualquier imagen a color pasarla a blanco y negro y luego esos valores cargarlos a un listbox

Gracias,