2016-08-23 4 views
-1

.jpg으로 변환하려는 .jp2 이미지 파일이 있습니다..jp2 이미지 파일을 .jpg로 변환 할 때의 ServiceConfigurationError

BufferedImage background = ImageIO.read(new File("images\\" 
    + randNum + ".jp2")); 
    ImageIO.write(background, "jpg", new File("images\\" + randNum 
       + ".jpg")); 

내가이 예외 가지고있다 :

분명히

java.util.ServiceConfigurationError: javax.imageio.spi.ImageWriterSpi: Provider com.github.jaiimageio.jpeg2000.impl.J2KImageWriterSpi could not be instantiated 
... 
Caused by: java.lang.NoClassDefFoundError: com/github/jaiimageio/impl/common/PackageUtil 
... 
Caused by: java.lang.ClassNotFoundException: com.github.jaiimageio.impl.common.PackageUtil 

업데이트, 충돌이 다른 라이브러리에서 클래스를 사용하여 발생, 여기에 내가 두 jai_imageiojai-imageio-jpeg2000했다, 나는 이것을 해결 문제를 간단히 제거하여 문제를 해결하십시오.

+0

시도해 보셨습니까? - http://stackoverflow.com/a/356650/3398732? – CodeWalker

+0

나는 어떤 오류도 내지 않았다, 당신의 부호는 jpg 파일을 perferctly 창조했다. 구성을 확인해 주시겠습니까? – erolkaya84

+0

@ CodeWalker 이미지 트랜스 코딩이 작동하지 않습니다. 동일한 오류입니다. 고맙습니다. 확실히 구성 문제입니다. – TiMr

답변

0

이 코드를 실행하면 새 jpg 파일이 생성되었습니다. 나는 그것이 당신을 도울 것이기를 바랍니다.

package yourPackage; 

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

import javax.imageio.ImageIO; 

public class ImageConverter { 


    public static void main(String[] args) throws IOException { 
     int randNum = 1; 
     convertImage(randNum);  

    } 

    private static void convertImage(int randNum) throws IOException { 
     try { 
      File foundFile = new File("c:\\images\\" + randNum + ".jp2"); 
      BufferedImage background = ImageIO.read(foundFile); 
      ImageIO.write(background, "jpg", new File("c:\\images\\" + randNum + ".jpg")); 
      System.out.println("jpg file is generated"); 
     } catch (Exception e) { 
      // TODO: handle exception 
      System.out.println("No file " + randNum +".jp2 found"); 
     } 

    } 
} 
+0

여전히 동일한 오류가 발생하고 jpg 파일이 생성되지 않았습니다. 가져 오기에 충돌이 있다고 생각합니까? – TiMr

+0

@TiyebBellal 답변을 업데이트했습니다. 나는 그것이 당신을 위해 일할 것이기를 바랍니다. – erolkaya84

+0

당신의 방법을 사용 해보고 디버깅 후에 예외가이 명령어에서 발생한다는 것을 발견했습니다 :'BufferedImage background = ImageIO.read (foundFile);' – TiMr

관련 문제