Je suis en train d'assembler des images avec un appel à montage
de ImageMagick à partir d'un script Python comme ceci:Python, ImageMagick et `subprocess`
command = "montage"
args = "-tile {}x{} -geometry +0+0 \"*.png\" out.png".format(width, height)
sys.stdout.write(" {} {}\n".format(command, args))
print subprocess.call([command, args])
Cependant, le montage montre que l'utilisation. Si je lance la commande manuellement, tout fonctionne. ImageMagick est censé prendre en charge la globalisation de nom de fichier dans Windows, ainsi * .png est développé. Mais apparemment, ce comportement est supprimé par subprocess
. Dois-je utiliser glob
pour alimenter montage
avec une liste de noms de fichiers?
Autres informations Merci jusqu'à présent. Mais même quand je l'utilise:
command = "montage"
tile = "-tile {}x{}".format(width, height)
geometry = "-geometry +0+0"
infile = "*.png"
outfile = "out.png"
sys.stdout.write(" {} {} {} {} {}\n".format(command, tile, geometry, infile, outfile))
print [command, tile, geometry, infile, outfile]
#~ print subprocess.call([command, tile, geometry, infile, outfile])
print subprocess.call(['montage', '-tile 9x6', '-geometry +0+0', '*.png', 'out.png'])
Je reçois une erreur:
Magick: unrecognized option `-tile 9x6' @ error/montage.c/MontageImageCommand/1631.
Je suis sous Windows 7, ImageMagick 6.6.5-7 2010-11-05 Q16 http://www.imagemagick.org, Python 2.7
Problème persistant avec ImageMagick-6.6.7-7-Q16-windows-dll.exe. – none
Notez le retour en arrière dans le message d'erreur \ "
'-tile' et 'widthxheight' doivent être deux éléments de liste différents. La même chose vaut pour tout sur la ligne de commande qui est séparée par un espace. Les seuls espaces qui devraient être présents dans les éléments de la liste sont ceux que vous pourriez échapper si vous deviez exécuter la commande directement. –