我原本想知道Swing支持哪種圖像格式,獨立於平臺。 Swing是我的首選工具包,我正在研究在我的愛好工作中使用哪種圖像格式的決定。一旦我知道哪些格式本質上受支持,我將決定是否與其中一個格式一起工作更簡單,或者是否更容易找到並使用獲得適當許可的第三方庫。然而,我遇到了一些困難,我希望能夠幫助理清我出錯的地方。On Swing圖像格式和服務提供商
我已經做了一些挖過的javax.imageio API和我的嘗試失敗,以確定支持哪些格式的我的電腦上,通過執行以下操作:
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()
已被挫敗。但是,即使成功報告支持的圖像格式,也不會告訴我這些格式是否在任何JVM中固有支持,或者由於我正在運行Windows 7 JVM而受到支持。
我看錯了地方?大概。我應該在哪裏看?我不知道。 JVM甚至有內置的ImageIO服務提供者,還是僅用於第三方庫註冊? 在Swing API中,軟件可以在哪裏查找支持的圖像格式?
我覺得有點傻,看起來有多簡單,現在我明白我錯過了:'ImageIO.getReaderMIMETypes()'。感謝您關於跨平臺的GIF/JPEG/PNG的說明:您知道這是否在官方正式聲明? – muffin
*「你知道這是否在某處正式說明嗎?」*我確定我已經在文檔或教程中看到它*含糊其詞。它看起來像*「一個JRE將支持各種類型的圖像,但**應該包括** JPG,GIF和PNG」* .. –