Autore Topic: Grafica: immagini trasparenti su form  (Letto 2199 volte)

Offline lucertola

  • Gamberetto
  • *
  • Post: 2
    • Mostra profilo
Grafica: immagini trasparenti su form
« il: 24 Luglio 2008, 17:28:00 »
...visto che sono nuovo: ciao a tutto il forum, innanzi tutto!!

Allora, volevo fare interfccie grafiche belle con gambas2, mettendo:
   1) come sfondo del form, un'immagine (non un colore!)
   2) icone trasparenti sull'immagine di sfondo

per il passo 1) non c'è problema, funziona correttamente:
   ME.Picture = hPict 'hPict è una Picture

invece non trovo il modo per mettere su form un'icona con sfondo trasparente!
Se uso una PictureBox per caricare la png, ci sarà sempre lo sfondo della picturebox rettangolare che maschera l'immagine di sfondo del form! ... con risultato grafico scadente (vedi: immagine allegata "png_NON_trasparente")

qualcuno sa come si fa? ... se si fa? in modo da ottenere un risultato simile all'immagine allegata "pg_trasparente", per ora fatta ...con GIMP :)

Grazie mille!!
Ciao
marco

  • Visitatore
Re: Grafica: immagini trasparenti su form
« Risposta #1 il: 24 Luglio 2008, 19:40:47 »
Benvenuto ...

Ho bestemmiato sopra la cosa anche io un pò, poi ho optato per il toolbutton , ti concede l'icona trasparente, solo che quando ci passi sopra diventa "NON trasparente" ( evidenzia i bordi ) come le picturebox .....

Offline Pixel

  • Amministratore
  • Maestro Gambero
  • *****
  • Post: 414
    • Mostra profilo
    • http://www.gambas-it.org
Re: Grafica: immagini trasparenti su form
« Risposta #2 il: 24 Luglio 2008, 20:35:32 »
Il trucco c'è... ma non si vede!  :-D
si deve creare la MASK dell'oggetto.
Guardate l'esempio dell'orologio.

Con quel sistema avevo creato una dock con icone.

Ciao
Ubuntu Italian Member Ubuntu User 4683
Il mio Blog

Offline lucertola

  • Gamberetto
  • *
  • Post: 2
    • Mostra profilo
Re: Grafica: immagini trasparenti su form
« Risposta #3 il: 25 Luglio 2008, 11:34:09 »
Ciao e grazie dei veloci suggerimenti!

cioè fare un MERGE dell'immagine di sfondo con quella dell'icona?
questo è il trucchetto che dicevi?

DIM hpict_b AS Picture 'picture intera di sfondo del form
DIM hpict_part AS Picture 'parte di sfondo del form inerente alla posizione della PictureBox
DIM himg_f, himg_b AS Image 'foreground, background image

'pb è la pictureBox piazzata sul form

'... hpict_b è già caricata con il file di sfondo

ME.Picture = hpict_b 'metto l'immagine di sfondo all'intero form
hpict_part = hpict_b.Copy(pb.X, pb.Y, pb.W, pb.H) 'preleva la parte di immagine dello sfondo che sta sotto la pictureBox

himg_b = hpict_part.Image 'conversione pict -> img
himg_f = Picture["my_ico.png"].Image 'preleva icona da visualizzare da file
 
'merge dell'immagine di sfondo (himg_b) con quella di foreground (himg_f)
himg_b.Draw(himg_f, 0, 0)
hpict_b.Flush()

pb.Picture = himg_b


'... ma un modo + semplice, integrato nel componente delle PictureBox, no?? :)

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Grafica: immagini trasparenti su form
« Risposta #4 il: 25 Luglio 2008, 22:05:14 »
in alternativa puoi sempre disegnare l' icona sull' immagine di sfondo :
Codice: [Seleziona]

dim pic_sfondo as picture
dim pic_icon1 as picture
dim pic_temp as picture


pic_sfondo = picture.load("percorso")
pic_icon1=picture.load("percorso")

pic_temp=pic_sfondo.copy()

draw.begin(pic_temp)

    draw.picture(pic_icon1,posizionex,posizioney)'disegno la icon sullo sfondo
draw.end
Form1.picture=pict_temp


 


il metodo suggerito da pixel sicuramente è migliore ma neppure io ho capito come fare una mask ad un picturebox.

Offline Pixel

  • Amministratore
  • Maestro Gambero
  • *****
  • Post: 414
    • Mostra profilo
    • http://www.gambas-it.org
Re: Grafica: immagini trasparenti su form
« Risposta #5 il: 26 Luglio 2008, 19:41:18 »
Mi dovrete scusare se sono stato criptico e ben poco esauriente nella spiegazione, non è mio solito.
In questi giorni sto testando la 8.10 e non ho ancora installato Gambas.
Pazientate un attimo che poi vi posto 2 righe di codice.

Ciao

P.S.
Ma l'esempio dell'orologio l'avete guardato?
Ubuntu Italian Member Ubuntu User 4683
Il mio Blog

Offline Pixel

  • Amministratore
  • Maestro Gambero
  • *****
  • Post: 414
    • Mostra profilo
    • http://www.gambas-it.org
Re: Grafica: immagini trasparenti su form
« Risposta #6 il: 31 Luglio 2008, 17:36:49 »
Uhm.. forse ho parlato troppo presto o non ricordo bene come avevo fatto (mi riservo di guardare nell'archivio delle mie prove se trovo il sorgente della dock che stavo facendo).
Nel frattempo (seguendo l'idea di giac_fab) credo di aver ottenuto una soluzione accettabile senza bordi evidenziati.

In allegato il file.
Ciao
Ubuntu Italian Member Ubuntu User 4683
Il mio Blog

Offline Pixel

  • Amministratore
  • Maestro Gambero
  • *****
  • Post: 414
    • Mostra profilo
    • http://www.gambas-it.org
Re: Grafica: immagini trasparenti su form
« Risposta #7 il: 01 Agosto 2008, 16:19:32 »
La ricerca non ha dato ancora esito, nel frattempo allego un'altra soluzione che si basa sull'idea di fsurfing ma con qualche variazione che permette il ridimensionamento del form mantenendo il background, il riconoscimento dell'icona ed eventuale Ballon informativo.
Ciao
Ubuntu Italian Member Ubuntu User 4683
Il mio Blog