Differenze tra le versioni di "Creare un file immagine da dati immagine grezzi mediante le funzioni del API di Imlib2"

Da Gambas-it.org - Wikipedia.
(Creata pagina con 'Avendo una variabile di tipo ''Puntatore'' che punta a dati immagine grezzi in formato 32 bit per pixel (come nei formati: "RGBA", "ARGB", "BGRA", etc), è possibile da tali d...')
 
Riga 12: Riga 12:
 
   
 
   
 
  <FONT Color=gray>' ''void imlib_context_set_image(Imlib_Image image)''
 
  <FONT Color=gray>' ''void imlib_context_set_image(Imlib_Image image)''
  ' Sets the current image Imlib2 will be using with its function calls.''</font>
+
  ' ''Sets the current image Imlib2 will be using with its function calls.''</font>
 
  Private Extern imlib_context_set_image(Imlib_Image As Pointer)
 
  Private Extern imlib_context_set_image(Imlib_Image As Pointer)
 +
 +
<FONT Color=gray>' ''void imlib_image_set_has_alpha(char has_alpha)''
 +
' ''Sets the alpha flag for the current image.''</font>
 +
Private Extern imlib_image_set_has_alpha(has_alpha As Boolean)
 
   
 
   
 
  <FONT Color=gray>' ''void imlib_save_image(const char *filename)''
 
  <FONT Color=gray>' ''void imlib_save_image(const char *filename)''
  ' ''Saves the current image in the format specified by the current image's format settings to the filename filename.''</font>
+
  ' ''Saves the current image in the format specified by the current image's format settings to the filename.''</font>
 
  Private Extern imlib_save_image(filename As String)
 
  Private Extern imlib_save_image(filename As String)
 
   
 
   
Riga 31: Riga 35:
 
      
 
      
 
   imlib_context_set_image(immago)
 
   imlib_context_set_image(immago)
 +
 +
<FONT Color=gray>' ''<SPAN Style="text-decoration:underline">Volendo</span>, può essere assegnato all'immagine il canale "alfa" per la trasparenza (se la supporta) dello sfondo:''</font>
 +
  imlib_image_set_has_alpha(True)
 
      
 
      
 
  <FONT Color=gray>' ''L'immagine creata viene salvata nel nuovo file immagine:''</font>
 
  <FONT Color=gray>' ''L'immagine creata viene salvata nel nuovo file immagine:''</font>

Versione delle 20:04, 5 dic 2014

Avendo una variabile di tipo Puntatore che punta a dati immagine grezzi in formato 32 bit per pixel (come nei formati: "RGBA", "ARGB", "BGRA", etc), è possibile da tali dati creare la relativa immagine e salvarla in un file immagine mediante alcune funzioni della libreria Imlib2.

La libreria Imlib2 è in grado di caricare, gestire, elaborare e salvare file immagini. Per poter fruire delle sue funzionalità in Gambas, è necessario richiamare la libreria (nella sua attuale versione): "libImlib2.so.1.4.6"


Mostriamo un semplice esempio attinente al presente argomento:

Library "libImlib2:1.4.6"

' Imlib_Image imlib_create_image_using_data(int width, int height, DATA32 * data)
' Creates an image from the image data - in the format of a DATA32 (32 bits) per pixel in a linear array - specified with the width and the height specified.
Private Extern imlib_create_image_using_data(width As Integer, height As Integer, data As Pointer) As Pointer

' void imlib_context_set_image(Imlib_Image image)
' Sets the current image Imlib2 will be using with its function calls.
Private Extern imlib_context_set_image(Imlib_Image As Pointer)

' void imlib_image_set_has_alpha(char has_alpha)
' Sets the alpha flag for the current image.
Private Extern imlib_image_set_has_alpha(has_alpha As Boolean)

' void imlib_save_image(const char *filename)
' Saves the current image in the format specified by the current image's format settings to the filename.
Private Extern imlib_save_image(filename As String)


Public Sub Form_Open()

 Dim im As Image
 Dim immago As Pointer
 
  im = Image.Load("/percorso/del/file/immagine/di/cui/verranno/estratti/i dati/grezzi")
   
' Viene creata l'immagine dai dati grezzi:
  immago = imlib_create_image_using_data(im.W, im.H, im.Data)
   
  imlib_context_set_image(immago)

' Volendo, può essere assegnato all'immagine il canale "alfa" per la trasparenza (se la supporta) dello sfondo:
  imlib_image_set_has_alpha(True)
   
' L'immagine creata viene salvata nel nuovo file immagine:
  imlib_save_image("/percorso/del/file/immagine/creato")

End



Riferimenti