我想调整图像大小,例如:convert 1.jpg -resize 250x240> 1.jpg
我写一些这样的代码:

File f=new File(request.getRealPath("/")+"pics/"+d.getTime()+"_"+ttt+suffix);
StringBuffer sb=new StringBuffer();
sb.append("'convert "+f.getAbsolutePath()+" -resize 250x240\\> "+f.getAbsolutePath()+"'");
String command=sb.toString();
Process p=Runtime.getRuntime().exec(command);
int returnv=p.waitFor();
System.out.println("command:"+command+" returnV:"+returnv);


但是我发现,当我添加'>'标志时,命令失败。我该如何解决?

最佳答案

>字符不是转换命令的标志,而是将输出重定向到文件1.jpg的标志。您可以只使用输出文件参数调用convert并避免重定向。代替:

convert 1.jpg -resize 250x240> 1.jpg


采用

convert -resize 250x240 1.jpg 1_resized.jpg


顺便说一句,您正在转义反斜杠-resize 250x240\\>,也许这不是必需的,您可以简单地编写-resize 250x240 >

更新:也许您可以使用JMagick(ImageMagick的Java库)代替执行系统进程来转换图像。

10-07 18:55
查看更多