Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Trasparenza oggetti sovrapposti
Forum - C# / VB.NET - Trasparenza oggetti sovrapposti

Avatar
giogiogio1213 (Normal User)
Rookie


Messaggi: 39
Iscritto: 06/04/2010

Segnala al moderatore
Postato alle 19:27
Venerdì, 29/10/2010
Ciao a tutti, premetto che ho cercato molto su google ma ottenevo altri risultati, ho fatto un giochino e gli manca l'ultimo tocco grafico ed è quì che sorge il problema...

Allora ho una picturebox con dentro un ovetto (l'immagine png non ha sfondo) il problema e che quando si sovrappone ad un altra picturebox utilizza lo sfondo della forma (perchè impostato su trasparent) e si forma un rettangolino attorno!!

Per capirci meglio posto un immagine! --> http://yfrog.com/2pciaoap

Come posso risolvere il problema grazie in anticipo!!!


Boh che dovrei scrivere?
PM Quote
Avatar
Ale96 (Member)
Pro


Messaggi: 132
Iscritto: 06/04/2010

Segnala al moderatore
Postato alle 9:19
Sabato, 30/10/2010
L'unico modo per sovrapporre due immagini usando la trasparenza è sfruttare la classe graphics.


Qualunque bug sufficientemente avanzato è indistinguibile da una caratteristica del software.

Ci sono 10 tipi di persone al mondo: chi capisce il codice binario e chi no.

I veri utenti non usano mai la funzione “Help”.
(tutti anonimi)
PM Quote
Avatar
giogiogio1213 (Normal User)
Rookie


Messaggi: 39
Iscritto: 06/04/2010

Segnala al moderatore
Postato alle 16:16
Sabato, 30/10/2010
Come si può risolvere allora il mio problema?


Boh che dovrei scrivere?
PM Quote
Avatar
Ale96 (Member)
Pro


Messaggi: 132
Iscritto: 06/04/2010

Segnala al moderatore
Postato alle 21:20
Sabato, 30/10/2010
Con un'unica picturebox dove apparirà un'immagine e varie immagini più una che verrà sfruttata dalla classe graphics per disegnarci sopra, sarà la stessa che apparirà nella picturebox.
Per sovrapporre due immagini devi creare un'immagine e dargli come immagine lo sfondo, quindi devi creare un'oggetto graphics partendo dall'immagine e impostare CompostingMode su SourceOver (ovvero le immagini vengono sovrapposte in base anche alla trasparenza), a questo punto disegni sullo sfondo tutto ciò che vuoi con Graphics.drawimage(Point, Image) dove point indica il punto in cui verrà disegnato l'angolo in alto a destra di image e image indica l'immagine da disegnare.
Un semplice (e ridotto) esempio, (Dovresti adattarlo e migliorarlo)
Codice sorgente - presumibilmente VB.NET

  1. Dim Background As Image = sfondo
  2. Dim G as Graphics = Graphics.FromImage(BackGround)
  3. G.CompostingMode = System.Drawing.Drawing2D.CompostingMode.SourceOver
  4. G.DrawImage(posizione, oggetto)


Ultima modifica effettuata da Ale96 il 30/10/2010 alle 21:21


Qualunque bug sufficientemente avanzato è indistinguibile da una caratteristica del software.

Ci sono 10 tipi di persone al mondo: chi capisce il codice binario e chi no.

I veri utenti non usano mai la funzione “Help”.
(tutti anonimi)
PM Quote
Avatar
giogiogio1213 (Normal User)
Rookie


Messaggi: 39
Iscritto: 06/04/2010

Segnala al moderatore
Postato alle 19:31
Domenica, 31/10/2010
sto provando... ti faccio sapere


Boh che dovrei scrivere?
PM Quote
Avatar
giogiogio1213 (Normal User)
Rookie


Messaggi: 39
Iscritto: 06/04/2010

Segnala al moderatore
Postato alle 16:14
Giovedì, 04/11/2010
Non mi riesce e poi penso che andrebbe a scatti a utilizzare uno sfondo così ampio... forse meglio lasciare perdere


Boh che dovrei scrivere?
PM Quote
Avatar
Ale96 (Member)
Pro


Messaggi: 132
Iscritto: 06/04/2010

Segnala al moderatore
Postato alle 14:40
Mercoledì, 10/11/2010
Guarda
http://totemslair.org/guide/viewchapter.php?guida=vb&id=96
e il capitolo successivo.
Se usi immagini troppo grandi le puoi ridurre, non avrebbe molto senso usare un'immagine più grande dello schermo


Qualunque bug sufficientemente avanzato è indistinguibile da una caratteristica del software.

Ci sono 10 tipi di persone al mondo: chi capisce il codice binario e chi no.

I veri utenti non usano mai la funzione “Help”.
(tutti anonimi)
PM Quote