Discussione chiusa
Visualizzazione dei risultati da 1 a 10 su 10

[VB2010] cambiare colore ad un immagine ... sostituire un colore

  1. #1
    L'avatar di imbranato
    imbranato non  in linea Scolaretto
    chiedo scusa se non allego il codice
    sapete come posso cambiare il colore di un pixel ad un immagine?
    intendo dire ... esiste il modo di sostituire un colore con un altro?(cambiare un gradiente)
    se sapete dove posso trovare qualcosa ...
    Ultima modifica di elisab; 20-04-2012 19:23 

  2. #2
    L'avatar di imbranato
    imbranato non  in linea Scolaretto
    Volevo usare una picturebox e cambiare alcuni colori ... ad esempio tutti quelli di un certo gradiente in un altro ...
    ma non riesco a chiamare la funzione. L'esempi msdn questo:

    Private Sub SetPixel_Example(ByVal e As PaintEventArgs)
    
        ' Create a Bitmap object from a file.
        Dim myBitmap As New Bitmap("Grapes.jpg")
    
        ' Draw myBitmap to the screen.
        e.Graphics.DrawImage(myBitmap, 0, 0, myBitmap.Width, _
        myBitmap.Height)
    
        ' Set each pixel in myBitmap to black.
        Dim Xcount As Integer
        For Xcount = 0 To myBitmap.Width - 1
            Dim Ycount As Integer
            For Ycount = 0 To myBitmap.Height - 1
                myBitmap.SetPixel(Xcount, Ycount, Color.Black)
            Next Ycount
        Next Xcount
    
        ' Draw myBitmap to the screen again.
        e.Graphics.DrawImage(myBitmap, myBitmap.Width, 0, myBitmap.Width, _
            myBitmap.Height)
    End Sub
    
    se richiamo myBitmap.SetPixel(Xcount, Ycount, Color.Black)
    cos non possibile ... picturebox1.SetPixel(Xcount, Ycount, Color.Black)

    chi sa dirmi perch e qual' il modo corretto? grazie!

  3. #3
    L'avatar di elisab
    elisab non  in linea Topo di biblioteca
    Partendo da quel codice

        ' Create a Bitmap object from a file.
        Dim myBitmap As New Bitmap("Grapes.jpg")
    
        ' Set each pixel in myBitmap to black.
        Dim Xcount As Integer
        For Xcount = 0 To myBitmap.Width - 1
            Dim Ycount As Integer
            For Ycount = 0 To myBitmap.Height - 1
                'IF
                  myBitmap.SetPixel(Xcount, Ycount, Color.Black)
            Next Ycount
        Next Xcount
        PictureBox1.Image = myBitmap
    
    E poi all'interno del For metti un If che controlla il colore del pixel (col metodo GetPixel) e se il colore che vuoi cambiare lo modifichi con SetPixel
    ℹ️ Leggi di pi su elisab ...

  4. #4
    L'avatar di imbranato
    imbranato non  in linea Scolaretto
    grazie Elisab. come sempre sei bravissima. Grazie per il tempo che ti sei presa per aiutarmi, sei bravissima

  5. #5
    L'avatar di imbranato
    imbranato non  in linea Scolaretto
    innanzitutto, ringrazio Elisab. per il suo grande e valido aiuto: http://forum.masterdrive.it/visual-b...-colore-65530/
    pensando che l'argomento possa essere d'aiuto anche ad altri, espongo nuovamente ma in forma diversa il problema(e forse sbaglio perch dovevo proseguire la vecchia discussione ... non so cosa sia giusto fare).

    Comunque se vado a cambiare tutti i colori il seguente codice funziona ... ma se voglio cambiare soltanto il bianco di un immagine non funziona ma non da errore: chi mi sa dire perch? grazie e scusate il casino.

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            ' Create a Bitmap object from a file.
            Dim myBitmap As New Bitmap(My.Resources.Immagine1)
    
            ' Set each pixel in myBitmap to black.
            Dim Xcount As Integer
            For Xcount = 0 To myBitmap.Width - 1
                Dim Ycount As Integer
                For Ycount = 0 To myBitmap.Height - 1
                    If myBitmap.GetPixel(Xcount, Ycount) = Color.White Then
                        myBitmap.SetPixel(Xcount, Ycount, Color.Black)'cambia colore
                    End If
                Next Ycount
            Next Xcount
            PictureBox1.Image = myBitmap
        End Sub
    

  6. #6
    Sei sicuro che ci siano pixel bianchi?

    Guarda che esistono "sfumature" per cui la If non verr soddisfatta mai.
    ℹ️ Leggi di pi su AntonioG ...

  7. #7
    L'avatar di elisab
    elisab non  in linea Topo di biblioteca
    Imbranato ti ho unito le discussioni perch il problema ancora quello iniziale cio sostituire un colore in un'immagine.

    Fermo restando la questione delle sfumature devi modificare quel codice, ho fatto una prova veloce e mi aspettavo che quel confronto come lo avevi impostato tu potesse funzionare, ma invece no.
                    If myBitmap.GetPixel(Xcount, Ycount).ToArgb = Color.White.ToArgb Then
                        myBitmap.SetPixel(Xcount, Ycount, Color.Black)'cambia colore
                    End If
                Next Ycount
    
    ℹ️ Leggi di pi su elisab ...

  8. #8
    L'avatar di imbranato
    imbranato non  in linea Scolaretto
    Magica ... magica magica ... Elisab. mi hai risolto anche questa! grazie!

  9. #9
    iz1kbp non  in linea Novello
    Ciao a tutti...
    Sono costretto ad usare VB2010 a causa di una applicazione per una penna ottica che ha lo sviluppo solo in vb2010.
    provengo da VB6 e di vb2010...capisco poco.
    Devo cambiare colore ad un pixel che ha come colore rgb 177,177,177.
    Ho preso spunto dalla discussione qui sopra ma purtroppo, causa non conoscenza, non capisco come posso risolver il problema:

    If myBitmap.GetPixel(Xcount, Ycount).ToArgb = Color.FromArgb(255, 177, 177, 177) Then

    etc etc...

    questa linea di codice mi restituisce come errore: impossibile convertire il valore di tipo integer in system.drawing.color.

    in vb6 molto semplice....ma in vb2010 non capisco cosa sbaglio e come risolverlo.

    Mi potete aiutare?

    Grazie

    Mario

  10. #10
    Questo thread del 2012. Non usare thread vecchi per un nuovo quesito.

    Chiuso.
    ℹ️ Leggi di pi su AntonioG ...

Discussione chiusa

Potrebbero interessarti anche ...

  1. VB2010- cambiare colore ad un pixel usando tonalita rgb
    Da iz1kbp nel forum Visual Basic .Net
    Risposte: 1
    Ultimo Post: 25-10-2013, 14:31
  2. Cambiare colore
    Da molinac nel forum C#
    Risposte: 1
    Ultimo Post: 14-03-2010, 20:33
  3. Cambiare un colore ad un immagine
    Da lucagfc nel forum Visual Basic 6
    Risposte: 5
    Ultimo Post: 14-07-2006, 11:32
  4. Cambiare colore di un pixel in immagine tif
    Da thefoxwhite nel forum ASP 3, ASP .Net
    Risposte: 1
    Ultimo Post: 04-01-2006, 23:40
  5. Cambiare colore sfondo DIV
    Da Eugene nel forum HTML, CSS e JavaScript
    Risposte: 2
    Ultimo Post: 15-05-2005, 15:31