2011-07-01 2 views
4

BufferedImageをPNMファイルとして保存しようとしています。私はすでにJAI(Java Advanced Imaging)をインストールし、PNMWriterプラグインをインポートしました。しかし、ImageWriterに追加する方法がわからないので、.pnmで書き込むことができます。 ImageIO.getWriterFormatNames()を実行してフォーマット名を取得すると、標準のファイル名(.png、.bmp、.jpg ....)のみが表示されます...プラグインをJava ImageWriterに追加する際のヘルプ

+0

私はちょうどしかしscanForPlugins()のImageIOでのクラスがあることが分かりましたそれは何の違いもありませんでした。 –

答えて

1

私はこれを自分のために実装しました。ソフトウェア。ソースコードは30行しかなかったので、Java Advanced Imagingを簡単に解決できるものに追加したくありませんでした。ここに私のソリューションです:

 public static void write(BufferedImage image, OutputStream stream) throws IOException 
     { 
       /* 
       * Write file header. 
       */ 
       int imageWidth = image.getWidth(); 
       int imageHeight = image.getHeight(); 
       stream.write('P'); 
       stream.write('6'); 
       stream.write('\n'); 
       stream.write(Integer.toString(imageWidth).getBytes()); 
       stream.write(' '); 
       stream.write(Integer.toString(imageHeight).getBytes()); 
       stream.write('\n'); 
       stream.write(Integer.toString(255).getBytes()); 
       stream.write('\n'); 

       /* 
       * Write each row of pixels. 
       */ 
       for (int y = 0; y < imageHeight; y++) 
       { 
         for (int x = 0; x < imageWidth; x++) 
         { 
           int pixel = image.getRGB(x, y); 
           int b = (pixel & 0xff); 
           int g = ((pixel >> 8) & 0xff); 
           int r = ((pixel >> 16) & 0xff); 
           stream.write(r); 
           stream.write(g); 
           stream.write(b); 
         } 
       } 
       stream.flush(); 
     } 
0

使用JAI(0​​クラス)ではなく、ImageIO(Javaの標準)は、使用:

JAI.create("ImageWrite", renderedImage, file, "pnm"); 
関連する問題