[英]Java - Why does ImageIO.read(filename) return null and the input image gets overwritten with 0 bytes?
[英]Java ImageIO read image in ppm format return null
javax.imageio.ImageIO是否完全讀取PPM格式的圖像(例如rawbits P6)?
BufferedImage rawimage = ImageIO.read(new File(getClass().getResource("/lena.ppm").getFile()));
沒有異常,但rawimage
為null
。 png和jpg等其他格式也可以正常工作。
我有一個笨拙的解決方法,通過剝離標題並逐行掃描ppm文件。 我假設JAVA JAI(現在是JDK的一部分)將直接使用。
我在這里想念什么嗎?
據我所知,JAI仍然不是JDK / JRE的一部分,它是單獨下載/安裝的。 而且,是的,您將需要JAI ImageIO(或其他第三方插件,例如我自己的 )讀取PPM,但不支持立即使用。
對於不支持的格式, ImageIO.read()
將返回null
。 這是預期的/已記錄的行為。
您可以使用ImageIO.getReaderFormatNames()
查詢已安裝支持的格式。
無法本地解碼PPM文件:“ 圖像I / O內置了對GIF,PNG,JPEG,BMP和WBMP的支持。” 但是您也許可以找到具有此支持的庫(或插件),只需搜索諸如Java ppm imagereader之類的東西。
使用此頁面上的ImageIO插件(LGPL許可), PPM(便攜式PixMap),PGM,PBM圖像文件java圖像讀取器/寫入器,您可以讀取/寫入rawbit PPM文件。
JAR文件至少需要以下文件
META-INF/
META-INF/MANIFEST.MF
META-INF/services/
META-INF/services/javax.imageio.spi.ImageReaderSpi
META-INF/services/javax.imageio.spi.ImageWriterSpi
uk/
uk/co/
uk/co/mmscomputing/
uk/co/mmscomputing/imageio/
uk/co/mmscomputing/imageio/ppm/
uk/co/mmscomputing/imageio/ppm/PPMConstants.class
uk/co/mmscomputing/imageio/ppm/PPMImageReader.class
uk/co/mmscomputing/imageio/ppm/PPMImageReaderSpi.class
uk/co/mmscomputing/imageio/ppm/PPMImageWriter.class
uk/co/mmscomputing/imageio/ppm/PPMImageWriterSpi.class
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.