2011-02-17 1456 views
13

Quiero definir una función que "llame" imagemagick para convertir una imagen.Usa ImageMagick con python. (en un sistema Linux)

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

¿Cómo puedo llamar y usar imagemagick con Python?

Funciono en un sistema Linux, imagemagick está instalado y no estoy usando PIL.module porque no maneja PPM [p3].

+0

pruebe Wand, http://docs.wand-py.org/en/0.4.1/ –

Respuesta

7

O utilice una de las interfaces de shell de Python (sistema.s, subproceso.Popen) para llamar al binario de imagemagick o pruebe PythonMagick.

+1

gracias, os.system funciona perfectamente. – Alpagut

3

No he utilizado la magia imagen pero se puede usar os.system para llamar a un comando shell:

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

le sugiero que vaya con PythonMagic como dijo Creshal. Es proporcionado por ImageMagic y, por lo tanto, debe ser uno de los mejores puertos disponibles para Python.

6

Yo sugeriría el uso de u subproceso es más seguro

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

Una buena respuesta, también tiene el beneficio de que no necesita cargarla en la memoria si ya está en el disco –

15

Negación: yo soy el autor de la varita.

Puede hacerlo fácilmente usando Wand, un enlace simple de ImageMagick para Python. Por ejemplo, el siguiente código convierte una imagen PNG a una imagen JPEG:

from wand.image import Image 

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

Ver this tutorial también.

+0

¿Puede cambiar el tamaño al 300%, cómo se agrega el aplanar y cómo se cambia el fondo? – Sekai

Cuestiones relacionadas