2016-11-02 2 views
0

私はパイプを扱うim4javaサンプルのTestCase10を試しています。パイプを使用してim4javaを変換する

https://github.com/Widen/im4java/blob/master/src/org/im4java/test/TestCase10.java


public class im4Test { 

    public static void main(String[] args) throws Exception { 
     IMOperation op = new IMOperation(); 
     op.addImage("-");     // read from stdin 
     op.addImage("tif:-");    // write to stdout in tif-format 

     // set up pipe(s): you can use one or two pipe objects 
     FileInputStream fis = new FileInputStream("ABC.png"); 
     FileOutputStream fos = new FileOutputStream("ABC.tif"); 
     // Pipe pipe = new Pipe(fis,fos); 
     Pipe pipeIn = new Pipe(fis,null); 
     Pipe pipeOut = new Pipe(null,fos); 

     // set up command 
     ConvertCmd convert = new ConvertCmd(); 
     convert.setInputProvider(pipeIn); 
     convert.setOutputConsumer(pipeOut); 
     convert.run(op); 
     fis.close(); 
     fos.close(); 
    } 
} 

と例外の下に直面し、何が起こっている上の任意の手掛かりは大歓迎です。



     Exception in thread "main" org.im4java.core.CommandException: java.io.IOException: The pipe is being closed 
     at org.im4java.core.ImageCommand.run(ImageCommand.java:219) 
     at com.cvc.image.im4Test.main(im4Test.java:28) 
    Caused by: java.io.IOException: The pipe is being closed 
     at java.io.FileOutputStream.writeBytes(Native Method) 
     at java.io.FileOutputStream.write(FileOutputStream.java:326) 
     at java.io.BufferedOutputStream.write(BufferedOutputStream.java:122) 
     at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) 
     at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) 
     at java.io.FilterOutputStream.close(FilterOutputStream.java:158) 
     at org.im4java.process.ProcessStarter.processInput(ProcessStarter.java:261) 
     at org.im4java.process.ProcessStarter.waitForProcess(ProcessStarter.java:423) 
     at org.im4java.process.ProcessStarter.run(ProcessStarter.java:313) 
     at org.im4java.core.ImageCommand.run(ImageCommand.java:215) 
     ... 1 more 

注:ImageMagickを使用してWindowsで実行してください。

+0

入力画像はどこにあるべきですか?そして、このプロセスで読めるのですか?このプロセスによって出力ディレクトリが書き込み可能かどうか'addImage(" - ")'を 'addImage(" png: - ")'に変更できますか?入力画像と出力画像をGIFまたはJPEGに変更すると機能しますか? –

答えて

0

さらに詳細なデバッグの問題が見つかりました。他人の利益のために回答として投稿する。

Windowsプラットフォームには独自の「変換」コマンドがあり、干渉しています。

Ecplise IDEはImageMagick 'convert'コマンドがシステムパスにあり、コマンドラインからアクセス可能で、Eclipseを再起動したことを確認しましたが、Windowsコマンドを選択しています。

ImageMagickの検索パスを明示的に設定する必要がありました。

ConvertCmd.setSearchPath('imageMagickBinDirPath') 
関連する問題