Differenze tra le versioni di "Convertire un file immagine in un altro formato immagine con le funzioni esterne del API di ImageMagick"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
 
Le risorse della libreria esterna ''ImageMagick'' consentono di convertire un file immagine in uno di questi formati: PNG, JPEG, BMP, TIFF, WebP, GIF e TGA. <SUP>&#091;[[#Note|nota 1]]&#093;</sup>
 
Le risorse della libreria esterna ''ImageMagick'' consentono di convertire un file immagine in uno di questi formati: PNG, JPEG, BMP, TIFF, WebP, GIF e TGA. <SUP>&#091;[[#Note|nota 1]]&#093;</sup>
  
Sarà necessario avere installata nel proprio sistema la libreria condivisa: "''libMagickWand-6.Q16.so.6.0.0'' ".
+
Sarà necessario avere installata nel proprio sistema la libreria condivisa: "''libMagickWand-7.Q16HDRI.so.10.0.1'' ".
  
 
Mostriamo un esempio pratico, con il quale si convertirà un file immagine in un file immagine di formato WEBP:
 
Mostriamo un esempio pratico, con il quale si convertirà un file immagine in un file immagine di formato WEBP:
  Library "libMagickWand-6.Q16:6.0.0"
+
  Library "libMagickWand-7.Q16HDRI:10.0.1"
 
   
 
   
 
  Private Const MagickPathExtent As Integer = 4096
 
  Private Const MagickPathExtent As Integer = 4096
Riga 53: Riga 53:
 
   Dim fileimmagine, nuovofile As String
 
   Dim fileimmagine, nuovofile As String
 
   
 
   
   fileimmagine = "<FONT Color=gray>''/percorso/del/file/da/convertire''</font>"
+
   fileimmagine = "<FONT Color=darkgreen>''/percorso/del/file/da/convertire''</font>"
 
   nuovofile = "/tmp/immagine.webp"
 
   nuovofile = "/tmp/immagine.webp"
 
   
 
   

Versione delle 02:58, 6 giu 2024

Le risorse della libreria esterna ImageMagick consentono di convertire un file immagine in uno di questi formati: PNG, JPEG, BMP, TIFF, WebP, GIF e TGA. [nota 1]

Sarà necessario avere installata nel proprio sistema la libreria condivisa: "libMagickWand-7.Q16HDRI.so.10.0.1 ".

Mostriamo un esempio pratico, con il quale si convertirà un file immagine in un file immagine di formato WEBP:

Library "libMagickWand-7.Q16HDRI:10.0.1"

Private Const MagickPathExtent As Integer = 4096

Public Struct MagickWand
  id As Long
  name[MagickPathExtent] As Byte
  images As Pointer
  image_info As Pointer
  exception As Pointer
  insert_before As Integer
  image_pending As Integer
  debug_ As Integer
  signature As Long
End Struct

Private Enum MagickFalse = 0, MagickTrue

' void MagickWandGenesis(void)
' Initializes the MagickWand environment.
Private Extern MagickWandGenesis()

' MagickWand *NewMagickWand(void)
' Returns a wand required for all other methods in the API.
Private Extern NewMagickWand() As MagickWand

' MagickBooleanType MagickReadImage(MagickWand *wand,const char *filename)
' Reads an image or image sequence.
Private Extern MagickReadImage(wand As MagickWand, filename As String) As Integer

' MagickBooleanType MagickWriteImages(MagickWand *wand, const char *filename,const MagickBooleanType adjoin)
' Writes an image or image sequence.
Private Extern MagickWriteImages(wand As MagickWand, filename As String, adjoin As Boolean) As Integer

' MagickWand *DestroyMagickWand(MagickWand *wand)
' Deallocates memory associated with an MagickWand.
Private Extern DestroyMagickWand(wand As MagickWand) As MagickWand

' void MagickWandTerminus(void)
' Terminates the MagickWand environment.
Private Extern MagickWandTerminus()


Public Sub Form_Open()

 Dim bo As Integer
 Dim mwand As MagickWand
 Dim fileimmagine, nuovofile As String

 fileimmagine = "/percorso/del/file/da/convertire"
 nuovofile = "/tmp/immagine.webp"

 MagickWandGenesis()

 mwand = NewMagickWand()

 bo = MagickReadImage(mwand, fileimmagine)
 If bo = MagickFalse Then
   Termina(mwand)
   Error.Raise("Impossibile caricare l'immagine !")
 Endif

 bo = MagickWriteImages(mwand, nuovofile, MagickTrue)
 If bo = MagickFalse Then
   Termina(mwand)
   Error.Raise("Impossibile creare il nuovo file dell'immagine ruotata !")
 Endif

 Termina(mwand)

End


Private Procedure Termina(mw As MagickWand)    ' Libera la memoria e termina il programma

 DestroyMagickWand(mw)
 MagickWandTerminus()

End


Note

[1] Vedere questa pagina: https://products.fileformat.com/image/c/imagemagick/