IMAGEMAGICK Utilisation
Publié : sam. 10/juin/2017 10:08
faire des Gif Animés (creation-sauvegarde )en Pb
le sujet reviens souvent, a propos des divers format de graphisme ,de rotations, de transformation
de modification de Lumiere, contraste,couleurs etc ... en Purebasic
en fait , il existe un moyen assez simple pour disposer de tout ça a moindre Frais
c'est ImageMagick !!! (d'ailleurs je ne connais pas la licence exacte, mais peut etre que Fred pourrai inclure des fonctions dédiées , comme il l'a fait pour Scintilla (juste une idée au passage )
voir la licence ici : https://www.imagemagick.org/script/license.php
[reedit] @Fred , il me semble que la license est tres permissive, a l'image de Scintilla , je pense que tu pourrai peut etre penser a l'inclure dans PureBasic non ?
donc voici comment se creer de toute piece un Gif Animé en utilisant Purebasic et ImageMagick
pour se faire je vais utilisé les images au format Bmp de Falsam suivantes :

mettez les dans le dossier de l'application que vous allez compiler avec le code suivant :
mais tout d'abords
Telecharger imagemagick ici:
http://www.imagemagick.org/script/download.php#windows (pour Windows )
ATTENTION A BIEN RECUPERER "ImageMagick-7.0.5-10-portable-Q16-x64.zip"
pas une autre version , j'ai eu des problèmes de fonctionnement avec les autres versions
installez le dans un coin de votre disque dur , soit C:\ soit comme pour moi D:\ImageMagick-7.0.5-10-portable-Q16-x64\
j'ai juste changé la lettre du lecteur , le chemin est proposé par l'installateur
pour faire du Gif Animé avec ImageMagick : voici le code en Pb
notez que je converti des images Bmp ci dessus , situées dans mon dossier "D:\Dobro\PureBasic\dobro\ExemplePerso\Graphisme\imagemagik_exemple_Purebasic\images_frame\"
et que je met le résultat généré du Gif Animé au meme endroit
par contre avec RunPrg , je lance imageMagick qui lui est situé dans son repertoire : "D:\ImageMagick-7.0.5-10-portable-Q16-x64\magick.exe" (pour moi)
la ligne de commande se compose de l'action a effectuer :"convert" , puis des paramètres pour la conversion (une animation faites d'images séparées par un delay de 200 millisecondes , en boucle )
puis viens ensuite l'emplacement des images a convertir, et l'emplacement du résultat GIF animé
ce qui apres le code (qui vous renvera un code 0 si tout va bien ) donnera ceci :
voici le code :
notez bien que imageMagick est capable de plein plein de chose a propos du graphisme
de la conversion de format en tout genre, en passant par des modifications de contraste, lumiere ,couleur , des comparaison entre image, rotation transformation en tout genre etc ...
c'est énorme ! et tres rapide
quelques exemples de ce qu'on peut faire avec , ici : http://www.imagemagick.org/Usage/
Fred si tu pouvais nous ajouter ça dans Purebasic (voir la licence ??? ) ce serai vraiment Top
a Tous :
si vous codez une conversions utilisant ImageMagick comme je le fait ici , n’hésitez pas a poster votre code dans ce topic, histoire de pas éparpiller
le sujet reviens souvent, a propos des divers format de graphisme ,de rotations, de transformation
de modification de Lumiere, contraste,couleurs etc ... en Purebasic
en fait , il existe un moyen assez simple pour disposer de tout ça a moindre Frais

c'est ImageMagick !!! (d'ailleurs je ne connais pas la licence exacte, mais peut etre que Fred pourrai inclure des fonctions dédiées , comme il l'a fait pour Scintilla (juste une idée au passage )
voir la licence ici : https://www.imagemagick.org/script/license.php
[reedit] @Fred , il me semble que la license est tres permissive, a l'image de Scintilla , je pense que tu pourrai peut etre penser a l'inclure dans PureBasic non ?
donc voici comment se creer de toute piece un Gif Animé en utilisant Purebasic et ImageMagick

pour se faire je vais utilisé les images au format Bmp de Falsam suivantes :




mettez les dans le dossier de l'application que vous allez compiler avec le code suivant :
mais tout d'abords
Telecharger imagemagick ici:
http://www.imagemagick.org/script/download.php#windows (pour Windows )
ATTENTION A BIEN RECUPERER "ImageMagick-7.0.5-10-portable-Q16-x64.zip"
pas une autre version , j'ai eu des problèmes de fonctionnement avec les autres versions

installez le dans un coin de votre disque dur , soit C:\ soit comme pour moi D:\ImageMagick-7.0.5-10-portable-Q16-x64\
j'ai juste changé la lettre du lecteur , le chemin est proposé par l'installateur
pour faire du Gif Animé avec ImageMagick : voici le code en Pb
notez que je converti des images Bmp ci dessus , situées dans mon dossier "D:\Dobro\PureBasic\dobro\ExemplePerso\Graphisme\imagemagik_exemple_Purebasic\images_frame\"
et que je met le résultat généré du Gif Animé au meme endroit
par contre avec RunPrg , je lance imageMagick qui lui est situé dans son repertoire : "D:\ImageMagick-7.0.5-10-portable-Q16-x64\magick.exe" (pour moi)
la ligne de commande se compose de l'action a effectuer :"convert" , puis des paramètres pour la conversion (une animation faites d'images séparées par un delay de 200 millisecondes , en boucle )
puis viens ensuite l'emplacement des images a convertir, et l'emplacement du résultat GIF animé

ce qui apres le code (qui vous renvera un code 0 si tout va bien ) donnera ceci :

voici le code :
Code : Tout sélectionner
;***********************************************
;Titre :*exemple_make_gif_animé
;Auteur :
;Date :10/06/2017
;Heure :10:51:51
;Version Purebasic : PureBasic 5.60 (Windows - x86)
;Version de l'editeur :EPB V2.64
; Libairies necessaire : telecharger ImageMagick
;***********************************************
;Telecharger imagemagick ici:
; http://www.imagemagick.org/script/download.php#windows
; installez le dans un coin de votre disque dur , soit C:\ soit comme pour moi D:\ImageMagick-7.0.5-Q1\
; j'ai juste changé la lettre du lecteur
; pour faire du Gif Animé avec ImageMagick : voici le code en Pb
; notez que je converti des images Bmp situées dans le dossier "D:\Dobro\PureBasic\dobro\ExemplePerso\Graphisme\imagemagik_exemple_Purebasic\images_frame\"
; et que je met le résultat du Gif Animé au meme endroit
; par contre je lance imageMagick qui lui est situé dans son repertoire : "D:\ImageMagick-7.0.5-10-portable-Q16-x64\magick.exe"
; la ligne de commande se compose de l'action a effectuer :"convert" , puis des parametres pour la convertion (une animation faites d'images séparées par un delay de 200 millisecondes , en boucle )
; puis viens ensuite l'emplacement des images a convertir, et l'emplacement du résultat GIF animé :)
Declare convertion_gif_anime(dossier.s)
;; convert -delay 20 -loop 0 *.Bmp animation.gif
dossier.s=PathRequester("choisir le dossier des images BMP a convertir","D:\")
Convertion_Gif_anime(dossier.s)
;-Zone Procedures
Procedure Convertion_Gif_anime(dossier.s)
Path_Imagemagick.s="D:\ImageMagick-7.0.5-10-portable-Q16-x64\magick.exe"
image$+"*.bmp"
param2$="convert -delay 20 -dispose Background -loop 0"
Parametre$ = param2$+" "+dossier.s+ image$+" "+dossier.s+"Gif_anime.gif" ; ici on creer l'animation
Prg= RunProgram(Path_Imagemagick.s, Parametre$, "", #PB_Program_Open|#PB_Program_Read|#PB_Program_Error|#PB_Program_Hide)
Sortie$ = ""
Delay(50)
If Prg
While ProgramRunning(Prg)
While AvailableProgramOutput(Prg)
Sortie$ + ReadProgramString(Prg)
Wend
Sortie$ + ReadProgramError(Prg)
Wend
While AvailableProgramOutput(Prg)
Sortie$ + ReadProgramString(Prg)
Wend
If Sortie$ <> ""
Sortie$ + Chr(13)
EndIf
Sortie$ + ReadProgramError(Prg) ; TRY THIS IF IT DOESNT WORK
Sortie$ + Chr(13) + Chr(13)
Sortie$ + "Code de retour : " + Str(ProgramExitCode(Prg))
CloseProgram(Prg) ; Ferme la connection vers le programme
EndIf
MessageRequester("Sortie", Sortie$)
EndProcedure
;
notez bien que imageMagick est capable de plein plein de chose a propos du graphisme
de la conversion de format en tout genre, en passant par des modifications de contraste, lumiere ,couleur , des comparaison entre image, rotation transformation en tout genre etc ...
c'est énorme ! et tres rapide

quelques exemples de ce qu'on peut faire avec , ici : http://www.imagemagick.org/Usage/
Fred si tu pouvais nous ajouter ça dans Purebasic (voir la licence ??? ) ce serai vraiment Top

a Tous :
si vous codez une conversions utilisant ImageMagick comme je le fait ici , n’hésitez pas a poster votre code dans ce topic, histoire de pas éparpiller
