Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Finrael en 14 Junio 2012, 19:40 pm



Título: Obtener valor del pixel
Publicado por: Finrael en 14 Junio 2012, 19:40 pm
Hola primero disculpar si ya esta respondido en algun lado esta duda pero ando algo confunso

la cuestion es la siguiente, tengo que hacer un software que simule una red neuronal que reconozca imagenes y me indique si es la opcion seleccionada, pero en fin. Mi problema es mucho mas basico, para dicho software necesito obtener los valores de cada pixel de una imagen que cargo en tiempo de ejecucion para ir guardolos en algun lado pero los ejemplos que encuentro estan en VB 6 y ya no estan soportados por vb.net. Hasta ahora tengo apenas


Código
  1. Public Class Form1
  2.  
  3.    Private Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As Integer, ByVal x As Integer, ByVal y As Integer) As Integer
  4.    Private Declare Function GetWindowDC Lib "user32.dll" (ByVal hwnd As Integer) As Integer
  5.    Private Declare Function GetDesktopWindow Lib "user32.dll" () As Integer
  6.  
  7.  
  8.  
  9.    Public Shared Function PixelColor(ByVal x As Integer, ByVal y As Integer) As Color
  10.        Dim winDc = GetWindowDC(API.GetDesktopWindow)
  11.        Dim color = GetPixel(winDc, x, y).ToString
  12.        PixelColor = System.Drawing.ColorTranslator.FromOle(color)
  13.    End Function
  14.  
  15.    Private Sub btnCargar_Click(sender As System.Object, e As System.EventArgs) Handles btnCargar.Click
  16.        OpenFileDialog1.ShowDialog()
  17.        picCarga.Image = System.Drawing.Image.FromFile(OpenFileDialog1.FileName)
  18.  
  19.    End Sub
  20.  
  21.    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
  22.        Me.Close()
  23.  
  24.    End Sub
  25.  
  26.    Private Sub btnEjecutar_Click(sender As System.Object, e As System.EventArgs) Handles btnEjecutar.Click
  27.  
  28.    End Sub
  29.  
  30.  
  31.    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  32.  
  33.    End Sub
  34. End Class
  35.  


Aunque en realidad las primeras partes del codigo no me las tome de un ejemplo que pretendi adaptar y de hecho la linea:
Dim winDc = GetWindowDC(API.GetDesktopWindow)
 no me la acepta ya que dice que no sabe que es API

EN realidad ya estoy muy desesperado asi que si alguien me pudiera ayudar se lo agradecere infinitamente


Título: Re: Obtener valor del pixel
Publicado por: Maurice_Lupin en 16 Junio 2012, 18:22 pm
Para utilizar las funciones de la API en vb.net, yo utilizo esta pagina, http://pinvoke.net/

Para obtener el valor de un pixel utilizo el objeto Bitmap
http://msdn.microsoft.com/en-us/library/system.drawing.bitmap.aspx

Código
  1. Dim imagen As Bitmap
  2.  
  3. imagen.getPixel(x, y)
  4.  
  5. imagen.SetPixel(x, y, Color )
  6.  

Saludos.