Autore Topic: Immagine con sfondo trasparente da visualizzare con PicturBox  (Letto 1640 volte)

Offline g.grandi

  • Gambero
  • **
  • Post: 51
    • Mostra profilo
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:

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.482
    • Mostra profilo
Re: Immagine con sfondo trasparente da visualizzare con PicturBox
« Risposta #1 il: 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

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.724
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Immagine con sfondo trasparente da visualizzare con PicturBox
« Risposta #2 il: 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 !
« Ultima modifica: 22 Agosto 2012, 16:21:55 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline g.grandi

  • Gambero
  • **
  • Post: 51
    • Mostra profilo
Re: Immagine con sfondo trasparente da visualizzare con PicturBox
« Risposta #3 il: 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.