Differenze tra le versioni di "Creare da codice un'immagine trasparente"

Da Gambas-it.org - Wikipedia.
(Creata pagina con 'Talvolta può rendersi necessario utilizzare una o più immagini <SPAN style="text-decoration:underline">trasparenti</span>. Volendo, è possibile evitare di dover caricare p...')
 
 
(12 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
Talvolta può rendersi necessario utilizzare una o più immagini <SPAN style="text-decoration:underline">trasparenti</span>.
 
Talvolta può rendersi necessario utilizzare una o più immagini <SPAN style="text-decoration:underline">trasparenti</span>.
  
Volendo, è possibile evitare di dover caricare preliminarmente nel progetto un file di un'immagine trasparente, ma generarla via codice Gambas. Ci serviremo delle protocollo relativo ai file immagine del [[Struttura_del_formato_XPM|formato ''XPM'']].
+
E' possibile evitare di dover caricare preliminarmente nel progetto un file di un'immagine trasparente, generandola direttamente via codice Gambas con almeno tre modalità.
  
  '''Public''' Sub Button1_Click()
+
 
 +
===Mediante la Classe ''Image''===
 +
Si potrà fare uso delle risorse disponibili con la Classe ''Image'':
 +
Public Sub Button1_Click()
 +
   
 +
  Dim im As Image
 +
 
 +
  With im = New Image(100, 100, <FONT color=red>&FF000000</font>, Image.Standard)
 +
<FONT color=gray>' ''oppure anche: '''New Image(100, 100, Color.Transparent, Image.Standard)'''''</font>
 +
    .Save("/tmp/immagine_trasparente.png", 100)
 +
  End With
 +
 +
  PictureBox1.Image = im
 +
 +
End
 +
 
 +
 
 +
===Mediante la Classe ''Picture''===
 +
Si potrà fare uso delle risorse disponibili con la Classe ''Picture'':
 +
Public Sub Button1_Click()
 +
 +
  Dim pc As Picture
 +
 +
<FONT color=gray>' ''Creando la variabile di tipo "Picture", porremo il terzo parametro a "True":''</font>
 +
  With pc = New Picture(100, 100, <FONT color=red>True</font>)
 +
<FONT color=gray>' ''Oppure il terzo parametro può essere impostato anche così:''
 +
' '''With pc = New Picture(100, 100, Color.Transparent)'''</font>
 +
 +
<FONT color=gray>' ''I formati utili per generare immagini trasparenti sono ".png" e ".xpm":''</font>
 +
    .Save("/tmp/immagine_trasparente.png", 100)
 +
  End With
 +
 +
End
 +
 
 +
 
 +
===Mediante il protocollo del file immagine ''XPM''===
 +
Si potrà anche fare uso del protocollo relativo ai file immagine del [[Struttura_del_formato_XPM|formato ''XPM'']].
 +
 
 +
Public Sub Button1_Click()
 
   
 
   
  Dim ss As String[]
 
 
   Dim wc, hr As Short
 
   Dim wc, hr As Short
 
   Dim s, px As String
 
   Dim s, px As String
 
   
 
   
    s = InputBox("Immettere numero dei pixel orizzontali e verticali divisi da una virgola:")
+
  <FONT color=gray>' ''La variabile "wc" rappresenta il numero di pixel della dimensione orizzontale (numero di colonne) dell'immagine:''</font>
+
  wc = 100
    ss = Split(s, ",")
 
 
  <FONT color=#006400>' ''La variabile "wc" rappresenta il numero di pixel della dimensione orizzontale (numero di colonne) dell'immagine:''</font>
 
    wc = CShort(Trim(ss[0]))
 
 
   
 
   
  <FONT color=#006400>' ''La variabile "hr" rappresenta il numero di pixel della dimensione verticale (numero di righe) dell'immagine:''</font>
+
  <FONT color=gray>' ''La variabile "hr" rappresenta il numero di pixel della dimensione verticale (numero di righe) dell'immagine:''</font>
    hr = CShort(Trim(ss[1]))
+
  hr = 100
 
   
 
   
    px = String$(hr, "\"" & String$(wc, ".") & "\",\n")
+
  px = String$(hr, "\"" & String$(wc, ".") & "\",\n")
 
   
 
   
    s = "/* XPM */\n" &
+
  s = "/* XPM */\n" &
        "static char *" & Application.Name & "[]={\n" &
+
      "static char *" & Application.Name & "[]={\n" &
        "\"" & wc & " " & hr & " 1 1\",\n" &          <FONT color=#006400>' ''/* <Values> */ /* <width/cols> <height/rows> <colors> <char on pixel>*/''</font>
+
      "\"" & wc & " " & hr & " 1 1\",\n" &          <FONT color=gray>' ''Valori: <width/cols> <height/rows> <colors> <char on pixel>''</font>
        "\". c None\",\n" &          <FONT color=#006400>' ''/* <Colors> */''</font>
+
      "\". c None\",\n" &          <FONT color=gray>' ''Colors''</font>
        px & "};"         <FONT color=#006400>' ''/* <Pixels> */''</font>
+
      px & "};"                   <FONT color=gray>' ''Pixels''</font>
 
   
 
   
  <FONT color=#006400>' ''Viene salvata l'immagine, per essere successivamente caricata ed utilizzata:''</font>
+
  <FONT color=gray>' ''Viene salvata l'immagine, per essere successivamente caricata ed utilizzata:''</font>
    File.Save("''percorso_immagine_trasparente''", s)
+
  File.Save("/tmp/immagine_trasparente.xpm''</font>", s)
 
   
 
   
  '''End'''
+
  End

Versione attuale delle 15:45, 25 giu 2024

Talvolta può rendersi necessario utilizzare una o più immagini trasparenti.

E' possibile evitare di dover caricare preliminarmente nel progetto un file di un'immagine trasparente, generandola direttamente via codice Gambas con almeno tre modalità.


Mediante la Classe Image

Si potrà fare uso delle risorse disponibili con la Classe Image:

Public Sub Button1_Click()

 Dim im As Image
 
 With im = New Image(100, 100, &FF000000, Image.Standard)
' oppure anche: New Image(100, 100, Color.Transparent, Image.Standard)
   .Save("/tmp/immagine_trasparente.png", 100)
 End With

 PictureBox1.Image = im

End


Mediante la Classe Picture

Si potrà fare uso delle risorse disponibili con la Classe Picture:

Public Sub Button1_Click()

 Dim pc As Picture

' Creando la variabile di tipo "Picture", porremo il terzo parametro a "True":
  With pc = New Picture(100, 100, True)
' Oppure il terzo parametro può essere impostato anche così:
' With pc = New Picture(100, 100, Color.Transparent)

' I formati utili per generare immagini trasparenti sono ".png" e ".xpm":
    .Save("/tmp/immagine_trasparente.png", 100)
  End With

End


Mediante il protocollo del file immagine XPM

Si potrà anche fare uso del protocollo relativo ai file immagine del formato XPM.

Public Sub Button1_Click()

  Dim wc, hr As Short
  Dim s, px As String

' La variabile "wc" rappresenta il numero di pixel della dimensione orizzontale (numero di colonne) dell'immagine:
  wc = 100

' La variabile "hr" rappresenta il numero di pixel della dimensione verticale (numero di righe) dell'immagine:
  hr = 100

  px = String$(hr, "\"" & String$(wc, ".") & "\",\n")

  s = "/* XPM */\n" &
      "static char *" & Application.Name & "[]={\n" &
      "\"" & wc & " " & hr & " 1 1\",\n" &          ' Valori: <width/cols> <height/rows> <colors> <char on pixel>
      "\". c None\",\n" &          ' Colors
      px & "};"                    ' Pixels

' Viene salvata l'immagine, per essere successivamente caricata ed utilizzata:
  File.Save("/tmp/immagine_trasparente.xpm</font>", s)

End