0

이미지를 InputStream으로 읽으려고합니다. 하지만 어떤 이유로 나는 항상 IllegalArugmentException이됩니다.IllegalArgumentException 입력 == null

BufferedImage i = null; 
i = ImageIO.read(getClass().getResourceAsStream("/res/graphics" + path)); 
+0

무엇합니까' "/ 입술/그래픽"인가? – NINCOMPOOP

+0

리소스 경로에 액세스 할 수 있습니까? – HRgiger

+0

프로그램에서 파일을 읽을 수 있습니까? –

답변

0

기본적으로 이름을 가지는 자원이 존재하지 않습니다

여기 내 코드입니다. 리소스는 클래스 로더에 의해 이름이 res.graphics.whatever 인 클래스와 같은 방식으로 배치됩니다. 물론 관련성은 더 커집니다. 따라서 동일한 메소드를 사용하여이 리소스에 액세스 할 수 있도록 클래스에 액세스 가능하게 만드십시오.

2

이유 :

자원이 null로 평가하고 예외

API doc

예외 이유는 다음과 같습니다 , IllegalArgumentException를 - 입력 null 경우.

솔루션 : res/graphics/whatever가 루트 클래스 경로에

경우가 반환됩니다 null이 아닌

0

가 원하는 값으로 평가하지 않습니다 "/res/graphics" + path을 보인다. 당신이 BufferedImage을 사용하는 방법 다음

는 + path`로 평가

public File myImg = new File("someImage.png"); 
BufferedImage in = ImageIO.read(myImg); 
//Just an example 
BufferedImage newImage = new BufferedImage(in.getWidth(), in.getHeight(), BufferedImage.TYPE_INT_ARGB); 
+0

이것은 [tag : embedded-resource] 일 가능성이 큽니다. '파일'은 작동하지 않습니다. –