2016-04-10 10 views
-1

に私はJavaのWebサービスへのAndroidアプリからInputStreamを送信していると私は、コードを使用して私のウェブサーバ上で保存したInputStreamからサムネイルを保存するには:どのようにJavaの

  String filePath = dirPath + File.separator + imageName;   
     // save the file to the server 
     try { 
      File newFile = new File(filePath); 
      boolean fileCreated = true; 
      if (!newFile.exists()) { 
       fileCreated = newFile.createNewFile(); 
      } 
      if (fileCreated) { 
       FileOutputStream outpuStream = new FileOutputStream(newFile); 
       int read = 0; 
       byte[] bytes = new byte[1024]; 

       while ((read = file.read(bytes)) != -1) { 
        outpuStream.write(bytes, 0, read); 
       } 
       outpuStream.flush(); 
       outpuStream.close(); 
      } 
     } catch (IOException e) { 
       e.printStackTrace();     
     } 

しかし、今私は100 * 100のサムネイルを保存したいですイメージ、誰かが私にこれを達成する方法を教えてもらえますか?私はこれを使用してみましたし、誰かがしてください私にはnull例外を取得しないための解決策を教えてくれたり、私にいくつかの他の方法を伝え、任意のライブラリを示唆していないことができますいずれかの場合には、エラーなしで私に

ImageIO.read().getScaledInstance(100, 100, BufferedImage.SCALE_SMOOTH); 

をヌル例外を与えていました。おかげで、私は助けを本当に感謝します:)

答えて

1

あなたは順序でこれらの操作を行います。

BufferedImage bim=null; 
try { 
    bim=ImageIO.read(newFile)); 
} 
catch (Exception ex) { ex.printStackTrace(); } 

File outFile of=new File(..../myimage.png"); 

BufferedImage img=(BufferedImage)bim.getScaledInstance(100, 100, BufferedImage.SCALE_SMOOTH); 

try { 
    ImageIO.write(img, "png", of); 
} catch (IOException ex) { ex.printStackTrace(); } 

-

あなたはこのように画像を拡大縮小することができますので、

BufferedImage img=new BufferedImage(100, 100, BufferedImage.TYPE_INT_RGB);   
    Graphics g=img.getGraphics(); 
    g.drawImage(bim, 0, 0, img.getWidth(), img.getHeight(), null); 

そのgetScaledInstanceをこれに置き換えます。 OK

+0

私はそれを試してみて、これに戻ってUに得るでしょう:) –

+0

さて、私はそれを試してみましたが、それは私に sun.awt.image.ToolkitImageはjava.awt.image.BufferedImage –

+0

それにキャストできない例外を提供します読み込み後にnullを返します。 ImageIO.read(myinputstream); と入力ストリームを入れなければならないのですが、これは何の意味ですか。 –