El vórtice de la Fuerza Unificada envolverá nuestro Jedi-Gambas shordi; así él será invencible e inmortal "usque ad infinitum Potentium" !
Dettalles del proyecto:
1) El programa funciona en entorno gráfico.
2) Tenemos que activar estos dos Componentes: " gb.net " y " gb.net.curl ".
3) Sobre el Formulario tenemos que poner un Button y un PictureBox.
4) Está constituido por la Clase principal del Formulario e por un Modulo " ImageMagick.module ".
El codigo del Modulo es:
Library "libMagickWand-6.Q16:2.0.0" ' Podeis usar tambien la libreria "libMagickWand:5.0.0" !!!
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 Pointer
' MagickBooleanType MagickReadImage(MagickWand *wand,const char *filename)
' Reads an image or image sequence.
Private Extern MagickReadImage(wand As Pointer, filename As String) As Boolean
' MagickBooleanType MagickRadialBlurImage(MagickWand *wand,const double angle),
' Blurs an image.
Private Extern MagickRadialBlurImage(wand As Pointer, blur As Float)
' MagickBooleanType MagickWriteImages(MagickWand *wand, const char *filename,const MagickBooleanType adjoin)
' Writes an image or image sequence.
Private Extern MagickWriteImages(wand As Pointer, filename As String, adjoin As Boolean) As Boolean
' MagickWand *DestroyMagickWand(MagickWand *wand)
' Deallocates memory associated with an MagickWand.
Private Extern DestroyMagickWand(wand As Pointer) As Pointer
' void MagickWandTerminus(void)
' Terminates the MagickWand environment.
Private Extern MagickWandTerminus()
Public Procedure Ad_Potentiam()
Dim bo As Boolean
Dim magick_wand As Pointer
Dim fileimagen, nuevofile As String
fileimagen = "/tmp/jedi.jpg"
nuevofile = "/tmp/jedi.jpg"
MagickWandGenesis()
magick_wand = NewMagickWand()
bo = MagickReadImage(magick_wand, fileimagen)
If bo = MagickFalse Then
MagickWandTerminus()
Error.Raise("Impossible cargar imagen !")
Endif
' Con esta función el Maestro Jedi-Gambas shordi se reúne a la Fuerza con un vórtice:
MagickRadialBlurImage(magick_wand, 50.0)
bo = MagickWriteImages(magick_wand, nuevofile, MagickTrue)
If bo = MagickFalse Then
MagickWandTerminus()
Error.Raise("Impossible crear el nuovo archivo imagen !")
Endif
DestroyMagickWand(magick_wand)
MagickWandTerminus()
End
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 Pointer
' MagickBooleanType MagickReadImage(MagickWand *wand,const char *filename)
' Reads an image or image sequence.
Private Extern MagickReadImage(wand As Pointer, filename As String) As Boolean
' MagickBooleanType MagickRadialBlurImage(MagickWand *wand,const double angle),
' Blurs an image.
Private Extern MagickRadialBlurImage(wand As Pointer, blur As Float)
' MagickBooleanType MagickWriteImages(MagickWand *wand, const char *filename,const MagickBooleanType adjoin)
' Writes an image or image sequence.
Private Extern MagickWriteImages(wand As Pointer, filename As String, adjoin As Boolean) As Boolean
' MagickWand *DestroyMagickWand(MagickWand *wand)
' Deallocates memory associated with an MagickWand.
Private Extern DestroyMagickWand(wand As Pointer) As Pointer
' void MagickWandTerminus(void)
' Terminates the MagickWand environment.
Private Extern MagickWandTerminus()
Public Procedure Ad_Potentiam()
Dim bo As Boolean
Dim magick_wand As Pointer
Dim fileimagen, nuevofile As String
fileimagen = "/tmp/jedi.jpg"
nuevofile = "/tmp/jedi.jpg"
MagickWandGenesis()
magick_wand = NewMagickWand()
bo = MagickReadImage(magick_wand, fileimagen)
If bo = MagickFalse Then
MagickWandTerminus()
Error.Raise("Impossible cargar imagen !")
Endif
' Con esta función el Maestro Jedi-Gambas shordi se reúne a la Fuerza con un vórtice:
MagickRadialBlurImage(magick_wand, 50.0)
bo = MagickWriteImages(magick_wand, nuevofile, MagickTrue)
If bo = MagickFalse Then
MagickWandTerminus()
Error.Raise("Impossible crear el nuovo archivo imagen !")
Endif
DestroyMagickWand(magick_wand)
MagickWandTerminus()
End
6) El codigo de la Clase principal puede ser este:
Private http As New HttpClient As "Http"
Public Sub Button1_Click()
' Envia petición al server para descargar el archivo avatar-imagen de nuestro Maestro Jodi-Gambas shordi:
http.URL = "https://foro.gambas-es.org/images/avatars/175608379556abc39c2877b.jpg"
http.Timeout = 15
' Descarga el archivo avatar-imagen de nuestro Jodi-Gambas shordi:
http.Get(Null, "/tmp/jedi.jpg")
End
Public Sub Http_Finished()
http.Close
ImageMagick.Ad_Potentiam()
' Carga el archivo imagen final en el "PictureBox":
PictureBox1.Picture = Picture["/tmp/jedi.jpg"]
End
Public Sub Button1_Click()
' Envia petición al server para descargar el archivo avatar-imagen de nuestro Maestro Jodi-Gambas shordi:
http.URL = "https://foro.gambas-es.org/images/avatars/175608379556abc39c2877b.jpg"
http.Timeout = 15
' Descarga el archivo avatar-imagen de nuestro Jodi-Gambas shordi:
http.Get(Null, "/tmp/jedi.jpg")
End
Public Sub Http_Finished()
http.Close
ImageMagick.Ad_Potentiam()
' Carga el archivo imagen final en el "PictureBox":
PictureBox1.Picture = Picture["/tmp/jedi.jpg"]
End
"Su Fuerza un Jedi usa para el conocimiento !"
Referencias:
* http://imagemagick.org/api/magick-wand.php
* http://www.ummon.org/Linux/index/ImageMagick_R.html
* http://www.magickwand.org/index.html