![](/img/trans.png)
[英]java.lang.OutOfMemoryError when doing javax.imageio.ImageIO.read(“filename”)
[英]Java: Loading png images without indexing (as BufferedImage.TYPE_4BYTE_ABGR), using javax.imageio.ImageIO.read()
我正在嘗試使用javax.imageio.ImageIO.read()方法加載PNG圖像。 但是,我希望結果類型為“ BufferedImage.TYPE_4BYTE_ABGR”,但最終以索引圖像形式出現(“ BufferedImage.TYPE_BYTE_INDEXED”)。 在原始圖像建立索引后,有什么方法可以將圖像加載為未建立索引? 大約有120張圖像,因此將它們全部手工索引都將花費太長時間。
如果您不反對使用JAI,則可以為RenderedImage創建一個渲染鏈(BufferedImage實現該接口)並將格式操作添加到鏈中:
JAI.create(“ format”,...)操作,帶有帶有JAI.KEY_REPLACE_INDEX_COLOR_MODEL鍵的呈現提示。
純ImageIO方法是創建所需類型的新BufferedImage並將從ImageIO.read中加載的圖像繪制到新的BufferedImage中:
BufferedImage image = ImageIO.read(inputFile);
BufferedImage convertedImage = new BufferedImage(image.getWidth(),
image.getHeight(), BufferedImage.TYPE_4BYTE_ABRG);
convertedImage.createGraphics().drawRenderedImage(image, null);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.