我使用terminal命令使用imagemagick工具将文件夹中的所有图像转换为RGB图像
“C:\ Documents and Settings \ admin \ My 文档\的NetBeansProjects \ Archiveindexer \资源\ T0003SathyabamaT \活动\ CBE_2014_03_02_FE_04_MN_IMAGES_CONVERTED” 是我的图片文件夹
终端命令:
myimagefolder> mogrify -colorspace RGB *.jpg
这很好用。但是当使用java运行它时它无法正常工作
File destpathfinalconv = new File("C:/Documents and Settings/admin/My Documents/NetBeansProjects/Archiveindexer/T0003SathyabamaT/Active/CBE_2014_03_02_FE_04_MN_IMAGES_CONVERTED");
ProcessBuilder pb = new ProcessBuilder("mogrify", "-colorspace RGB", destpathfinalconv.toString(),
"*.jpg");
pb.redirectErrorStream(true);
Process p = pb.start();
BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = null;
while ((line = br.readLine()) != null) {
System.err.println(line);
}
System.err.println("Error "+p.waitFor());
系统抛出错误“mogrify.exe:无法识别的选项 `-colorspace RGB'@ error / mogrify.c / MogrifyImageCommand / 4254。错误1“
任何想法请建议。
答案 0 :(得分:2)
您正在指定' -colorspace RGB'作为单个参数,但它应该是两个参数。您应该将路径和文件以及搜索模式组合到一个参数中。应该像这样调用ProcesBuilder的构造函数:
ProcessBuilder pb = new ProcessBuilder("mogrify", "-colorspace", "RGB",
destpathfinalconv.toString() + "\\" + "*.jpg");
答案 1 :(得分:0)
试试这个:
ProcessBuilder pb = new ProcessBuilder(
"mogrify",
"-colorspace",
"RGB",
destpathfinalconv.toString(),
"*.jpg");
说明:ProcessBuilder中的每个String参数最终都是" word" (根据shell的说法)或结果execve调用中的单独参数。
组合" -colorspace RGB"导致mogrify的单个参数,这是(未知)选项" -colorspace \ RGB"。