Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1
    Utente di HTML.it L'avatar di Gugu
    Registrato dal
    Nov 2002
    Messaggi
    523

    [VB.NET] Trasparenza picturebox su controllo

    Ciao a tutti,
    premetto che prima di scrivere ho frugato molto sul web e sul forum senza qualcosa di utile..
    dovrei visualizzare un'immagine png in una picturebox che però a sotto un controllo e la form direttamente..
    insomma il solito problema di trasparenza che impostato sul backcolor funziona ma prende il colore del form e non di quello che effettivamente c'è sotto il picturebox.
    Considerate che ad esempio una di queste immagini ha una label di colore rosso.
    L'immagine è png con sfondo trasparente da photoschop ed è raccolta in un imagelist dove ho impostato il trasparentcolor su trasparent.

    grazie in anticipo
    Ciao
    Andrea

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244

    Re: [VB.NET] Trasparenza picturebox su controllo

    Originariamente inviato da Gugu
    Ciao a tutti,
    premetto che prima di scrivere ho frugato molto sul web e sul forum senza qualcosa di utile..
    dovrei visualizzare un'immagine png in una picturebox che però a sotto un controllo e la form direttamente..
    Cioè?

    Originariamente inviato da Gugu
    insomma il solito problema di trasparenza che impostato sul backcolor funziona ma prende il colore del form e non di quello che effettivamente c'è sotto il picturebox.
    e cosa c'è sotto?

    Originariamente inviato da Gugu
    Considerate che ad esempio una di queste immagini ha una label di colore rosso.
    Un'immagine ha una label? Che significa?

    Originariamente inviato da Gugu
    L'immagine è png con sfondo trasparente da photoschop ed è raccolta in un imagelist dove ho impostato il trasparentcolor su trasparent.
    Sarebbe utile un progettino di esempio, per capire bene perchè non è molto chiaro.


  3. #3
    Utente di HTML.it L'avatar di Gugu
    Registrato dal
    Nov 2002
    Messaggi
    523
    In parole povere in una form ho una label con la proprietà backcolor = color.red, e sopra a questa label ho una picturebox che visualizza la mia immagine con sfondo trasparente.
    Nella trasparenza dell'immagine, non vedo la label che è sotto ma vedo lo sfondo della form.
    vorrei vedere la label.
    scusa, ho scritto in fretta.. ed era evidentemente poco chiaro.

    grazie
    Ciao
    Andrea

  4. #4
    Se la tua immagine non è particolarmente complessa puoi fare in questo modo:
    codice:
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            Dim nuovaSagoma As Region
            Dim formaSagoma As Drawing2D.GraphicsPath
            Dim punti(0 To 7) As Point
    
            punti(0) = New Point(34, 22)
            punti(1) = New Point(127, 46)
            punti(2) = New Point(127, 51)
            punti(3) = New Point(106, 118)
            punti(4) = New Point(2, 81)
            punti(5) = New Point(10, 67)
            punti(6) = New Point(0, 63)
            punti(7) = New Point(34, 22)
    
            formaSagoma = New Drawing2D.GraphicsPath()
            formaSagoma.AddPolygon(punti)
            nuovaSagoma = New Region(formaSagoma)
            PictureBox1.Region = nuovaSagoma
            formaSagoma.Dispose()
    
        End Sub


    Ovvimente si tratta di un esempio ad hoc per questa immagine che ho recuperato in rete.

  5. #5
    Utente di HTML.it L'avatar di Gugu
    Registrato dal
    Nov 2002
    Messaggi
    523
    ti ringrazio molto..
    potrei utilizzare il tuo metodo dato che la forma è un triangolo! risulta ancora più semplice..
    la cosa che però mi lascia un po' perplesso è che speravo in un metodo un po' più universale.. vorrei caricare ad esempio un'altra immagine sempre nello stesso picturebox senza diventar pazzo coi punti.. in rete ho trovato qualcosa che sfrutta il comando "bitmap.maketrasparent" però non sono riuscito ad usarlo correttamente.

    ritengo impossibile che non ci abbiano pensato!!
    è abbastanza classica come richiesta.
    Ciao
    Andrea

  6. #6
    Originariamente inviato da Gugu
    in rete ho trovato qualcosa che sfrutta il comando "bitmap.maketrasparent" però non sono riuscito ad usarlo correttamente.
    Posta tutto (se non è troppo lungo) e vediamo di usarlo correttamente..

  7. #7
    Originariamente inviato da Gugu
    in rete ho trovato qualcosa che sfrutta il comando "bitmap.maketrasparent" però non sono riuscito ad usarlo correttamente.
    Posta tutto (se non è troppo lungo) e vediamo di usarlo correttamente..


    Ciao

  8. #8
    Originariamente inviato da Gugu
    in rete ho trovato qualcosa che sfrutta il comando "bitmap.maketrasparent" però non sono riuscito ad usarlo correttamente.

    ritengo impossibile che non ci abbiano pensato!!
    è abbastanza classica come richiesta.
    Hai ragione!!!
    Qualche tempo fa ho usato questo metodo, ma non sempre si ottengono i risultati sperati.
    Puoi fare in questo modo:
    codice:
        Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
    
            'istanzi una bitmap e le associ un'immagine
            Dim myBitmap As New Bitmap("D:\Folder3.png")
    
            'recuperi un pixel dalla zona dell'immagine il cui colore deve essere reso trasparente
            Dim backColor As Color = myBitmap.GetPixel(1, 1)
    
            'rendi trasparente quella zona della bitmap i cui pixel hanno il colore=backColor
            myBitmap.MakeTransparent(backColor)
    
            'disegni la bitmap
            e.Graphics.DrawImage(myBitmap, 0, 0, myBitmap.Width, myBitmap.Height)
    
        End Sub
    Ho preso e riadattato l'esempio proposto dalla MSDN.

    Ma perché vuoi mettere una Label sotto un'immagine?

  9. #9
    Utente di HTML.it L'avatar di Gugu
    Registrato dal
    Nov 2002
    Messaggi
    523
    Grazie per l'interessamento..
    principalmente per 2 motivi:
    1 devo farlo in una form..
    2 in generale! non è possibile che una picturebox con sotto un controllo non prenda il controllo come sfondo! credo che serva in 100000 applicazioni.

    una volta mi è capitato di avere una picture box sopra un toolstrip (l'immagine era un logo) al quale ho dovuto dare da photoshop lo stesso colore di sfondo del toolstrip..

    sono sconcertato che non si possa fare semplicemente.

    grazie 1000 intanto
    Ciao
    Andrea

  10. #10
    Utente di HTML.it L'avatar di Gugu
    Registrato dal
    Nov 2002
    Messaggi
    523
    per precisare l'effetto desiderato è moooolto uguale all'esempio fatto del libro quache post fa'.

    ciao!
    Ciao
    Andrea

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.