Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Salve a tutti, sono un nuovo utente ma consulto questo interessantissimo sito da tempo.
Ho un problema che probabilmente si dimostrerà essere una stupidata...
In pratica devo sovrapporre un logo su una immagine, mantenendo i bordi rendendo trasparenti alcune parti del logo stesso. Quindi in modo abbastanza efficace ho usato l'API TransparentBlt. Però quando devo salvare l'immagine nella picture modificata, non viene inserito il logo. Questo invece succedeva se usavo il metodo PaintPicture, ma avevo l'inconveniente che non c'era la trasparenza...
Dove sbaglio?
Codice sorgente - presumibilmente VB.NET
'Ci sono solo due Picturebox. Picturebox1 è un'immagine con il logo il cui colore bianco deve essere reso trasparente. La Picturebox2 contiene lo sfondo.
Il risultato della tua routine è solo virtuale. Quello che vedi è memorizzato nella zona usata per il display del monitor.
L'unica maniera per poter salvare il risultato è operare una cattura della porzione di schermo che inquadra la PictureBox2.
Oppure, cambiando metodo, usare la funzione BitBlt e qualche maschera.
grazie mille della pronta risposta. Immaginavo, a forza di tentativi, che l'immagine fosse solo virtuale. Ho provato con il metodo bitblt ma non cambia nulla.
Codice sorgente - presumibilmente VB.NET
'Ci sono solo due Picturebox. Picturebox1 è un'immagine con il logo il cui colore bianco deve essere reso trasparente. La Picturebox2 contiene lo sfondo.
In ogni caso, esistono altre vie con VB6 per inserire un immagine sopra ad un'altra con relativa trasparenza (quindi senza usare paintimage) e soprattutto salvare il risultato?
Il programma che hai gentilmente postato lo studiato per bene, però non mi sembra abbastanza flessibile. Infatti devo sempre avere due immagini (logo + mask) e lo sfondo. La mask non è tanto facile da fare se ho ad'esempio un titolo sotto il logo.
Ultima modifica effettuata da Lorenzo L il 05/06/2010 alle 15:46
Grazie mille!
Così posso superare le difficoltà che avevo trovato. Visto che comunque nel web ho trovato altri utenti che si facevano la mia domanda, se riesco faccio un piccolo programma-riassuntivo del prezioso codice postato da Alfonso.