Obtener valor del pixel

Iniciado por Finrael, 14 Junio 2012, 19:40 PM

0 Miembros y 1 Visitante están viendo este tema.

Finrael

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 (vbnet) [Seleccionar]

Public Class Form1

    Private Declare Function GetPixel Lib "gdi32.dll" (ByVal hdc As Integer, ByVal x As Integer, ByVal y As Integer) As Integer
    Private Declare Function GetWindowDC Lib "user32.dll" (ByVal hwnd As Integer) As Integer
    Private Declare Function GetDesktopWindow Lib "user32.dll" () As Integer



    Public Shared Function PixelColor(ByVal x As Integer, ByVal y As Integer) As Color
        Dim winDc = GetWindowDC(API.GetDesktopWindow)
        Dim color = GetPixel(winDc, x, y).ToString
        PixelColor = System.Drawing.ColorTranslator.FromOle(color)
    End Function

    Private Sub btnCargar_Click(sender As System.Object, e As System.EventArgs) Handles btnCargar.Click
        OpenFileDialog1.ShowDialog()
        picCarga.Image = System.Drawing.Image.FromFile(OpenFileDialog1.FileName)

    End Sub

    Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
        Me.Close()

    End Sub

    Private Sub btnEjecutar_Click(sender As System.Object, e As System.EventArgs) Handles btnEjecutar.Click

    End Sub


    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

    End Sub
End Class



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

Maurice_Lupin

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 (vbnet) [Seleccionar]

Dim imagen As Bitmap

imagen.getPixel(x, y)

imagen.SetPixel(x, y, Color )


Saludos.
Un error se comete al equivocarse.