2009-12-30 3 views
0

J'utilise im4java pour appeler imagemagick à partir d'une application Grails. La ligne de commande que j'essaie de l'utiliser est convertir "c: \ ZonesG \ application-web \ spresources \ summarypage_images \ 00 \ 09 \ 18 \ myimage.jpg" -resize 100x100 "c: \ ZonesG \ web- app \ spresources \ summarypage_images \ 00 \ 09 \ 18 \ myimage_thumbnail100.jpg »java ProcessBuilder ne fonctionne pas correctement avec Imagemagick sous Windows

ou convert c: \ ZonesG \ web-app \ spresources \ summarypage_images \ 00 \ 09 \ 18 \ myimage.jpg -resize 100x100 c: \ ZonesG \ application-web \ spresources \ summarypage_images \ 00 \ 09 \ 18 \ myimage_thumbnail100.jpg

Les arguments transmis à ProcessBuilder semblent corrects. Il y a 5 chaînes séparées comme suit.

convertir

c: \ ZonesG \ web-app \ spresources \ summarypage_images \ 00 \ 09 \ 18 \ myimage.jpg

-resize

100x100

c: \ ZonesG \ web-app \ spresources \ summarypage_images \ 00 \ 09 \ 18 \ myimage_thumbnail100.jpg

Je reçois une erreur indiquant que le paramètre -resize n'est pas valide lorsque je l'exécute via Processbuilder . Cela donne l'impression d'appeler la fonction de conversion, mais quelque chose est arrivé aux paramètres pour qu'ils ne les reconnaissent plus. Ce ne sont pas les hypens dans les répertoires. Je l'ai essayé à différents répertoires et cela ne fonctionne toujours pas. Lorsque je l'exécute à partir de la ligne de commande, cela fonctionne parfaitement.

J'ai essayé d'ajouter des guillemets autour des deux noms de fichiers. Encore une fois, cela fonctionne très bien dans la fenêtre de commande, mais ne fonctionne pas à partir du code Java.

Des idées?

+0

"Les args transmis à processbuilder" ne "semblent pas corrects"; ils ne ressemblent à rien! Nous devons voir le code. –

+0

Avez-vous des exemples avec im4Java? Merci pour tout ce qui concerne la ligne de commande directe ([email protected]) – goodm

Répondre

0

Merci pour votre commentaire Jonathan, Pendant ce temps, j'ai découvert ce qui se passait.

  1. L'ordre des arguments était plus important lors de l'appel depuis ProcessBuilder. Je l'ai modifié pour que le redimensionnement et la géométrie soient les premiers et que le fichier d'image d'entrée soit le suivant. Cela a fait fonctionner.
0

J'ai également eu cette erreur. C'est en fait parce qu'il exécute un programme de Microsoft dans Windows appelé "convertir". Pour que im4java fonctionne correctement, vous devez créer une variable d'environnement. Par exemple: IM4JAVA_TOOLPATH = C: \ Program Files (x86) \ ImageMagick-6.6.4-Q16 \

Questions connexes