2016-08-23 2 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

관련 문제