###前提・実現したいこと
Fred's ImageMagick Scriptsにて公開されている、ImageMagick用のRetinex ScriptをJavaで呼び出したい。
Retinex Script
###発生している問題・エラーメッセージ
JavaのProcessBuilderから実行すると以下のエラーが発生します。
--- FILE /Users/~~省略~~/hoge.jpg DOES NOT EXIST OR IS NOT AN ORDINARY FILE, NOT READABLE OR HAS ZERO SIZE ---
###該当のソースコード
Java
1ProcessBuilder retinexProcessBuilder = new ProcessBuilder("retinexPath", "inPath", "outPath"); 2Process retinexProcess; 3retinexProcess = retinexProcessBuilder.start(); 4printInputStream(retinexProcess.getInputStream()); 5retinexProcess.waitFor();
###試したこと
- ここを参考にScriptの該当箇所を
/tmp
に変更してみる retinex
やプロジェクトあるディレクトリなどのPermissionを777
にしてみる- 指定するファイルパスを絶対パスにしてみる
###補足情報(言語/FW/ツール等のバージョンなど)
Macのターミナル上から実行した場合は、問題なく実行ができます。
ImageMagick標準のコマンドは問題なく実行できました。
また、ScalaのREPLで以下のコードを試してみても実行ができました。
Scala
1import scala.sys.process._ 2Process(Seq("retinexPath", "inPath", "outPath")).lines 3warning: there was one deprecation warning; re-run with -deprecation for details
JavaのProcessBuilderを使用したときのみ、実行ができません。
---- 追記 ----
どうやら、retinexの285行目〜
にあるtmpファイル
が作成されてないようです。
環境
- OS X 10.11.6
- ImageMagick 6.9.5-10
- JDK8
あなたの回答
tips
プレビュー