我試圖從圖像魔法運行轉換命令,並且對於這兩種情況下此命令不起作用。Java ProcessBuilder ImageMagic轉換命令
這裏是我使用的代碼:
String command = String.format("convert \"%s\" -rotate %s \"%s\"", inputFileString, "" + degrees, outputFileString);
log.info(command);
ProcessBuilder pb = new ProcessBuilder("convert", inputFileString, "-rotate " + degrees, outputFileString);
Process p = pb.start();
第一種情況,我有我得到下面的輸出,這是同樣的反應,我得到當我使用im4java庫。這就是我決定首先使用這些命令的原因。
2016-06-11 22:19:09 INFO - convert "C:\photo-gallery\photo-gallery-ui\portfolios\admin\test4\v\1465675527119.jpg" -rotate 90.0 "C:\photo-gallery\photo-gallery-ui\portfolios\admin\test4\v\1465676349249.jpg"
2016-06-11 22:19:09 ERROR - Invalid Parameter - -rotate
第二種情況是,當我在我的文件中有空間:
2016-06-11 22:23:00 INFO - convert "C:\photo-gallery\photo-gallery-ui\portfolios\admin\Mare i Marko\Marko[2]\12717488_1578649372458773_429110010804118179_n.jpg" -rotate 90.0 "C:\photo-gallery\photo-gallery-ui\portfolios\admin\Mare i Marko\Marko[2]\1465676580556.jpg"
2016-06-11 22:23:00 ERROR - Invalid Parameter - i
爲什麼會invalida參數?我在日誌中輸出了信息,當我複製/粘貼到命令行時,命令在兩種情況下都會傳遞。爲什麼我不能像輸出那樣使用這個命令?
謝謝。我從來沒有猜到這需要另一個應用程序。由於我需要爲Windows平臺上的unix環境開發,這使事情變得複雜。嘗試我的代碼在debian上,它沒有任何改變。 – Marko
@ user1925253是的,這有點痛苦。我想到的另一種可能性是使用imagemagick實用程序的完整路徑並使用它。 – Tunaki