Gambas-it

Archivi (sola lettura) => Domande tecniche (Gambas 2) => Topic aperto da: g.grandi - 21 Agosto 2012, 21:12:25

Titolo: Immagine con sfondo trasparente da visualizzare con PicturBox
Inserito da: g.grandi - 21 Agosto 2012, 21:12:25
Ciao, sono un neofita che muove i primi passi in Gambas2 e che proviene da anni di programmazione QBasic e PWBasic. Mi sono imbattuto nel seguente problema: creo un progetto con una form interamente occupata da una immagine .jpg alla quale sovrappongo una PictureBox con un'icona disegnata con l'icon editor in formato .png. Nell'icona vi sono parti che vorrei lasciare in trasparente, ho provato in mille modi ma non ottengo mai l'immagine della form sottostante.
E' una cosa impossibile da fare o sto sbagliando qualcosa??  :hard:
Titolo: Re: Immagine con sfondo trasparente da visualizzare con PicturBox
Inserito da: fsurfing - 21 Agosto 2012, 21:23:37
la cosa così come descritta è impossibile da realizzare  , questo perche la picture box non puo essere trasparente.

per risolvere dovresti caricare l' immagine dello sfondo in una variabile picture , alla picture applichi l' icona  e poi la picture che ne risulta la userai come sfondo del form.

se invece tu vuoi utilizzare la picture box come se fosse un pulsante , ti conviene utilizzate un toolbox  che non è null' altro che un pulsante appositamente creato per inserirci sopra un  immagine , tenendo conto della trasparenza.

se la soluzione che ti interessa è la prima ti serve qualcosa del tipo:

Codice: [Seleziona]
dim hpic as picture
dim hpi1 as picture

hpic=picture.load(percorso sfondo)
lpic1=picture.load(percorso icona)

draw.begin(hpic)
  draw.picture(hpic1,10,10)
draw.end

fmain.picture=hpic
Titolo: Re: Immagine con sfondo trasparente da visualizzare con PicturBox
Inserito da: vuott - 21 Agosto 2012, 23:43:30
....una form interamente occupata da una immagine .jpg alla quale sovrappongo una PictureBox con un'icona disegnata con l'icon editor in formato .png. Nell'icona vi sono parti che vorrei lasciare in trasparente....
...scusami, forse non ho capito bene....  :-X ....ma tu vorresti ottenere - caricando un'immagine nella Form ed un'altra immagine in una PictureBox, sovrapposta alla Form -  un risultato simile all'immagine qui allegata ?


Se è così, io ho ottenuto quel risultato (l'immagine risultante è semplicemente una schermata della Form finale che ho catturato per fartela vedere) in questo modo: mi carico entrambe le immagini (quella del gatto e quella della X gialla, creata con l'editor delle icone di Gambas) nell'albero a sinistra del progetto - in Dati (ma ovviamente puoi caricarle in qualunque cartella del sistema); poi le richiamo ciascuna per il rispettivo oggetto che le conterrà:
Codice: gambas [Seleziona]

Public Sub Form_Open()

  Me.Picture = Picture["gatto.jpg"]   ' se invece che in Dati, il file immagine è in una cartella del sistema, va scritto l'intero percorso
  
  PictureBox1.Picture = Picture["X.png"]   ' se invece che in Dati, il file immagine è in una cartella del sistema, va scritto l'intero percorso

End



Attenzione, però, io ho Gambas-3, e non so  :-\ se il comportamento della PictureBox è identico fra le due versioni !
Titolo: Re: Immagine con sfondo trasparente da visualizzare con PicturBox
Inserito da: g.grandi - 22 Agosto 2012, 11:03:55

Grazie a fsurfing per il suggerimento del toolbutton. Sono riuscito a risolvere la questione.  :ok:

In risposta a vuott: purtroppo in Gambas 2, l'area occupata dalla PictureBox viene sempre visualizzata anche se occupata da un'immagine trasparente. Grazie comunque.