Differenze tra le versioni di "Sfumare radialmente un'immagine mediante le funzioni esterne del API di ImageMagick"
Da Gambas-it.org - Wikipedia.
Riga 1: | Riga 1: | ||
Il sistema ''ImageMagick'' consente di creare, modificare e convertire immagini bitmap. Può altresì leggere e scrivere immagini di oltre 200 formati. | Il sistema ''ImageMagick'' consente di creare, modificare e convertire immagini bitmap. Può altresì leggere e scrivere immagini di oltre 200 formati. | ||
− | Per poter fruire in Gambas delle risorse, è necessario avere installata nel sistema e richiamare la seguente libreria condivisa: "''libMagickWand- | + | Per poter fruire in Gambas delle risorse, è necessario avere installata nel sistema e richiamare la seguente libreria condivisa: "''libMagickWand-7.Q16HDRI.so.10.0.1'' ". |
Le risorse di questa libreria ci consentono - fra l'altro - di sfumare un'immagine con un effetto vortice. | Le risorse di questa libreria ci consentono - fra l'altro - di sfumare un'immagine con un effetto vortice. | ||
Mostriamo un esempio pratico: | Mostriamo un esempio pratico: | ||
− | Library "libMagickWand- | + | Library "libMagickWand-7.Q16HDRI:10.0.1" |
Private Const MagickPathExtent As Integer = 4096 | Private Const MagickPathExtent As Integer = 4096 | ||
Riga 53: | Riga 53: | ||
− | + | Public Sub Main() | |
Dim bo As Integer | Dim bo As Integer | ||
Riga 59: | Riga 59: | ||
Dim fileimmagine, nuovofile As String | Dim fileimmagine, nuovofile As String | ||
− | fileimmagine = "<FONT Color= | + | fileimmagine = "<FONT Color=darkgreen>''/percorso/del/file/immagine''</font>" |
− | nuovofile = "<FONT Color= | + | nuovofile = "<FONT Color=darkgreen>''/percorso/del/nuovo/file/dell'immagine/spostata''</font>" |
MagickWandGenesis() | MagickWandGenesis() | ||
Riga 83: | Riga 83: | ||
Termina(mwand) | Termina(mwand) | ||
− | + | End | |
− | + | ||
+ | Private Procedure Termina(mw As MagickWand) <FONT Color=gray>' ''Libera la memoria e termina il programma''</font> | ||
DestroyMagickWand(mw) | DestroyMagickWand(mw) | ||
Riga 91: | Riga 92: | ||
MagickWandTerminus() | MagickWandTerminus() | ||
− | + | End | |
Versione attuale delle 04:09, 6 giu 2024
Il sistema ImageMagick consente di creare, modificare e convertire immagini bitmap. Può altresì leggere e scrivere immagini di oltre 200 formati.
Per poter fruire in Gambas delle risorse, è necessario avere installata nel sistema e richiamare la seguente libreria condivisa: "libMagickWand-7.Q16HDRI.so.10.0.1 ".
Le risorse di questa libreria ci consentono - fra l'altro - di sfumare un'immagine con un effetto vortice.
Mostriamo un esempio pratico:
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 MagickRadialBlurImage(MagickWand *wand, const double angle) ' Blurs an image. Private Extern MagickRadialBlurImage(wand As MagickWand, blur As Float) 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 Main() Dim bo As Integer Dim mwand As MagickWand Dim fileimmagine, nuovofile As String fileimmagine = "/percorso/del/file/immagine" nuovofile = "/percorso/del/nuovo/file/dell'immagine/spostata" MagickWandGenesis() mwand = NewMagickWand() bo = MagickReadImage(mwand, fileimmagine) If bo == MagickFalse Then Termina(mwand) Error.Raise("Impossibile caricare l'immagine !") Endif ' Modifica l'immagine con l'effetto sfumato con vortice: MagickRadialBlurImage(mwand, 50.0) bo = MagickWriteImages(mwand, nuovofile, MagickTrue) If bo == MagickFalse Then Termina(mwand) Error.Raise("Impossibile creare il nuovo file dell'immagine sfumata !") Endif Termina(mwand) End Private Procedure Termina(mw As MagickWand) ' Libera la memoria e termina il programma DestroyMagickWand(mw) Wait 0.01 MagickWandTerminus() End