2014-07-19 3 views
1

원래 Swype이 플랫폼 독립적으로 지원하는 이미지 형식을 알고 싶었습니다. 스윙이 내가 선호하는 툴킷이며, 취미 작업에 사용할 이미지 형식의 결정을 연구하려고합니다. 어떤 형식이 본질적으로 지원되는지 알고 나면, 그 중 하나를 사용하는 것이 더 쉬운지 또는 적절한 라이선스가 부여 된 제 3 자 라이브러리를 찾고 작업하는 것이 더 간단한 지 여부를 결정할 것입니다. 그러나 나는 걸림돌을 때렸고, 내가 잘못한 부분을 해결할 수 있도록 도움을 원합니다.Swing 이미지 형식 및 서비스 공급자

나는 일부 javax.imageio의 API를 통해 파고했던 내가 실패 다음을 수행하여, 내 PC에 지원되는 형식을 결정하기 위해 시도한 다음을보고 않았다

package iiortester; 

import javax.imageio.spi.IIORegistry; 
import javax.imageio.spi.ImageReaderSpi; 

public class IIORTester { 
    public static void main(String[] args) { 
     IIORegistry iioRegistry = IIORegistry.getDefaultInstance(); 
     ImageReaderSpi imageReaderSpi = 
       iioRegistry.getServiceProviderByClass(ImageReaderSpi.class); 
     System.out.println(imageReaderSpi); // output is null 
    } 
} 

디폴트의 IIORegistry 인스턴스를 카테고리 ImageReaderSpi에서 ServiceRegistry.getCategories()으로 전화를 걸었을 때 위 코드에서 이미지 리더 서비스 공급자 인터페이스를 얻으려고하면 null 참조가 표시됩니다. 이것은 내가 올바른 방향으로 나아 가지 않을 것이라는 힌트 일 수 있으며 ImageReaderWriterSpi.getFormatNames() 쿼리 계획이 실패했습니다. 그러나 지원되는 이미지 형식을보고하는 데 성공 했더라도 Windows 7 JVM을 실행하고 있기 때문에 그러한 형식이 본질적으로 모든 JVM에서 지원되는지 또는 지원되는지 여부는 알 수 없습니다.

내가 틀린 장소를 찾고 있습니까? 아마. 어디에서 내가 봤어야합니까? 나는 모른다. JVM에는 ImageIO 서비스 공급자가 내장되어 있습니까? 아니면 제 3 자 라이브러리 등록 전용입니까? Swing API에서 소프트웨어는 지원되는 이미지 형식을 검색 할 수 있습니까?

답변

2

모든 JRE에서 GIF, JPEG 및 PNG가 지원되어야합니다.

특정 JRE가 지원하는 것에 대한보다 구체적인 대답은 많은 정보를 제공하는 MediaTypes 소스 코드를 참조하십시오.

+0

얼마나 간단했는지 조금 바보가되어 이제 놓친 것을 보게되었습니다. ImageIO.getReaderMIMETypes(). 플랫폼 간 GIF/JPEG/PNG에 대한 메모를 보내 주셔서 감사합니다. 공식적으로 어딘가에 명시된 것이 있는지 알고 계십니까? – muffin

+0

* "공식적으로 어딘가에 명시되어 있는지 알고 계십니까?"* 문서 또는 자습서에서 모호하게 * 보았습니다. * "JRE는 다양한 유형의 이미지를 지원하지만 ** JPG, GIF & PNG"*를 포함해야합니다. * .. –

1

지원되는 이미지 형식을 보려면 :

이 파일을 읽을 수있는 보려면 : ImageIO.getReaderFormatNames();
는 파일을 기록 할 수있는 보려면 : ImageIO.getWriterFormatNames();

JOptionPane.showMessageDialog(null,"Java Image Formats:\r\nread:\t"+Arrays.toString(ImageIO.getReaderFormatNames())+"\r\nwrite:\t"+Arrays.toString(ImageIO.getWriterFormatNames())); 

이미지 종류를하는 자바에 등록 된 항목이 목록에 표시됩니다.

+0

그 도피는 나를 위해 작동합니다 (cf. 이 [screenshot] (http://i.imgur.com/ti5AgPp.png) – muffin