Gambas-it

Gambas3 => Programmazione => Topic aperto da: baldi96 - 20 Marzo 2013, 19:43:16

Titolo: [Risolto]color.setalpha ???
Inserito da: baldi96 - 20 Marzo 2013, 19:43:16
Qualcuno di voi mi può spiegare come funziona la funzione color.setalpha?
dalla documentazione leggo:
Citazione
Codice: gambas [Seleziona]
Static Function SetAlpha ( Color As Integer, Alpha As Integer ) As Integer

l'ho provata ad usare(da quel che ho capito mi dovrebbe ritornare un colore quasi trasparente) ma non sono riuscito a capire cosa è "alpha as integer", ho provato così,  ma non funge, mi dà solo il colore rosso:
 
Codice: gambas [Seleziona]
PictureBox3.Background = Color.setAlpha(Color.red, 50)


c'è qualcuno di voi che può darmi una risposta?
grazie mille  :ciao:
Titolo: Re: color.setalpha ???
Inserito da: vuott - 20 Marzo 2013, 21:44:32
Io...... proverei a caricare un file con un'immagine tutta di colore, ad esempio, rossa, e vi applicherei questo codice....
Codice: gambas [Seleziona]

Public Sub Button1_Click()

  Dim p As New Picture
  Dim i As New Image

   p = p.Load("mia_immagine_tutta_rossa.png")

   i = p.Image
  
   i = i.PaintRect(100, 100, 30, 30, Color.SetAlpha(Color.Yellow, 100))

   p = i.Picture

    PictureBox1.Picture = p

End


      

...mo' il mio amico sotema mi fa secco un'altra volta.  :-X
Titolo: Re: color.setalpha ???
Inserito da: baldi96 - 23 Marzo 2013, 18:42:03
Grazie, ma non mi funziona,mi ridà un'immagine rossa.
quello che intendo io è come fà il quadrato della selezione multipla di nautilus,che è mezzo trasparente per far vedere le icone sotto.
Titolo: Re: color.setalpha ???
Inserito da: vuott - 23 Marzo 2013, 20:17:50
Si deve utilizzare la funzione .Opacity della Classe Image.

Esempio.
Abbiamo due immagini poste in due PictureBox una posta sotto l'altra. L'obiettivo, se non ho capito male  ;D , è di rendere semi-trasparente l'immagine superiore, in modo tale che si riesca a vedere anche l'immagine sottostante:
Codice: gambas [Seleziona]

Private i As New Image
Private p As Picture


Public Sub Form_Open()

  PictureBox2.Picture = Picture.Load("immagine_sottostante.xxx")

   With i = i.Load("immagine_da_rendere_semitrasparente.xxx")
     i = .Opacity(0.5)      ' La funzione vuole un valore di tipo Float tra 0 ed 1
   End With

End


Public Sub Button1_Click()

   p = i.Picture
  
   PictureBox1.Picture = p

End

Titolo: Re: color.setalpha ???
Inserito da: baldi96 - 23 Marzo 2013, 20:40:20
Grande! Risolto grazie mille.