我正在使用im4java从grails app调用imagemagick。我试图让它使用的命令行是 转换“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“
或 转换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
传递给ProcessBuilder的args看起来是正确的。有以下5个单独的字符串。
转换
C:\ ZonesG \ web应用\ spresources \ summarypage_images \ 00 \ 09 \ 18 \ myimage.jpg
调整大小
100×100
C:\ ZonesG \ web应用\ spresources \ summarypage_images \ 00 \ 09 \ 18 \ myimage_thumbnail100.jpg
当我通过processbuilder运行时,我得到一个错误,即-resize参数无效。这使它看起来好像在调用转换函数,但参数发生了一些事情,因此它不再识别它们。这不是目录中的大肆宣传。我尝试了它到不同的目录,它仍然无法正常工作。
当我从命令行运行它时,它可以很好地工作。
我尝试在两个文件名周围添加双引号。同样,它在命令窗口中运行良好,但在java代码中不起作用。
任何想法?
答案 0 :(得分:0)
感谢你的评论Jonathan, 与此同时,我发现了正在发生的事情。
答案 1 :(得分:0)
我也有这个错误。这实际上是因为它在Windows中运行一个名为“convert”的Microsoft程序。要让im4java运行正确,您需要创建一个环境变量。例如:IM4JAVA_TOOLPATH = C:\ Program Files(x86)\ ImageMagick-6.6.4-Q16 \