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.
(3 versioni intermedie di uno stesso utente non sono mostrate) | |||
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>[[[#Note|nota 1]]]</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>[[[#Note|nota 1]]]</sup> | ||
− | Sarà necessario avere installata nel proprio sistema | + | Sarà necessario avere installata nel proprio sistema la libreria condivisa: "''libMagickWand-7.Q16HDRI.so.10.0.2'' ". |
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- | + | Library "libMagickWand-7.Q16HDRI:10.0.2" |
+ | |||
+ | Private Const MagickPathExtent As Integer = 4096 | ||
Public Struct MagickWand | Public Struct MagickWand | ||
Riga 19: | Riga 21: | ||
Private Enum MagickFalse = 0, MagickTrue | Private Enum MagickFalse = 0, MagickTrue | ||
− | |||
<FONT Color=gray>' ''void MagickWandGenesis(void)'' | <FONT Color=gray>' ''void MagickWandGenesis(void)'' | ||
Riga 52: | Riga 53: | ||
Dim fileimmagine, nuovofile As String | Dim fileimmagine, nuovofile As String | ||
− | fileimmagine = "<FONT Color= | + | fileimmagine = "<FONT Color=darkgreen>''/percorso/del/file/da/convertire''</font>" |
nuovofile = "/tmp/immagine.webp" | nuovofile = "/tmp/immagine.webp" | ||
Versione attuale delle 10:39, 30 nov 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.2 ".
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.2" 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/