13 votes

Utiliser ImageMagick avec python. (sur un système linux)

Je veux définir une fonction qui "appelle" imagemagick pour convertir une image.

def convert(filein,fileout):
#imagemagick>convert filein fileout

Comment puis-je appeler et utiliser imagemagick avec Python ?

Je fonctionne sur un système linux, imagemagick est installé, et je n'utilise pas PIL.module car il ne gère pas PPM[p3].

16voto

minhee Points 1345

Avis de non-responsabilité : Je suis l'auteur de Baguette.

Vous pouvez facilement le faire en utilisant Baguette une liaison simple d'ImageMagick pour Python. Par exemple, le code suivant convertit une image PNG en une image JPEG :

from wand.image import Image

with Image(filename='in.png') as img:
    img.format = 'jpeg'
    img.save(filename='out.jpg')

Voir ce tutoriel également.

8voto

Creshal Points 191

Vous pouvez soit utiliser l'une des interfaces shell de Python (os.system, subprocess.Popen) pour appeler le binaire imagemagick, soit essayer PythonMagick .

6voto

Rakesh Points 2644

Je vous suggère d'utiliser sous-processus il est plus sûr

import subprocess
params = ['convert', 'src_file', 'result_file']
subprocess.check_call(params)

3voto

crodjer Points 4099

Je n'ai pas utilisé la magie des images mais vous pourriez utiliser os.system pour appeler une commande shell :

import os
os.system('imagemagick-converting-command filein fileout')   

Je vous suggère d'opter pour PythonMagic comme l'a dit Creshal. Il est fourni par ImageMagic et doit donc être l'un des meilleurs portages disponibles pour python.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X