2016-08-23 12 views
-1
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 
import javax.imageio.ImageIO; 
    public class ImageTest { 
      public static void main(String args[]){ 
        ImageTest imageTest = new ImageTest(); 
        imageTest.testImage(); 
      } 
     void testImage() { 
     int x = 10; 
     int y = 10; 
     int w = 24; 
     int h = 44; 
     //String path = "D:images\\upload_final\\030311175258.jpg"; 
     //String path = "D:\\screens\\testcd.jpg"; 
     String path = "D:\\Vision\\tmpsvs\\New\\20F.TIF"; 
     System.out.println("Path===>"+path); 
     BufferedImage out = null; 
     BufferedImage image = null; 
     try { 
      image = ImageIO.read(new File(path)); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
      //out = image.getSubimage(x, y, w, h); 
     try { 
      out =ImageIO.read(new File(path)).getSubimage(x, y, w, h); 
     } catch (IOException e1) { 
      // TODO Auto-generated catch block 
      e1.printStackTrace(); 
     } 

     try { 
      ImageIO.write(out, "TIF", new File(path)); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
      } 
    } 
+0

デバッガを使用しようとしましたか? – ByeBye

+0

ええ、私はそうするときに以下を得ました。 – James

+0

パス===> D:ImageTest.mainで\ビジョン\ tmpsvsスレッドの新\ 20F.TIF 例外\ "メイン" java.lang.NullPointerExceptionが ImageTest.testImageで\t(ImageTest.java:34) \t( ImageTest.java:10) – James

答えて

0

これを試してください - \がエスケープされていることを確認してください。 Windowsでは、単一のバックスラッシュをエスケープする必要があります。以下のコードを参照してください。

import java.awt.image.BufferedImage; 
import java.io.File; 
import java.io.IOException; 

import javax.imageio.ImageIO; 

public class ImageTest { 
public static void main(String args[]) { 
    ImageTest imageTest = new ImageTest(); 
    imageTest.testImage(); 

} 

void testImage() { 
    int x = 10; 
    int y = 10; 
    int w = 24; 
    int h = 44; 
    String path = "C:\\Users\\xxx\\yyy\\Documents\\M\\tumblr_nz324ifAzI1sgxxaao1_500.jpg"; 

    System.out.println("Path===>" + path); 
    BufferedImage out = null; 
    BufferedImage image = null; 
    try { 
     image = ImageIO.read(new File(path)); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} 

}

+0

ありがとうSanjeev ...私は\\と//を試しました。両方とも同じものを作り出しました。何らかの理由で、私はファイルを読むことができません。私はパスとその順序をチェックしました。 – James

+0

他のヒント/ヘルプ? – James

+0

それはちょうどそのTIFファイルは上記のコードに従って単純にトリミングすることはできません。誰でもTIF画像を切り抜いた経験がありますか? – James

関連する問題