0

javax.imageio.ImageIO 是否读取 PPM 格式的图像(例如,rawbits P6)?

BufferedImage rawimage = ImageIO.read(new File(getClass().getResource("/lena.ppm").getFile()));

没有例外,rawimagenull. 其他格式,如 png 和 jpg 工作正常。

我有一个尴尬的解决方法,通过剥离标题并逐行扫描 ppm 文件。我假设 JAVA JAI(现在是 JDK 的一部分)会开箱即用。

我在这里想念什么吗?

4

3 回答 3

2

据我所知,JAI 仍然不是 JDK/JRE 的一部分,它是一个单独的下载/安装。而且,是的,您将需要 JAI ImageIO(或其他 3rd 方插件,如我自己的)来读取 PPM,它不支持开箱即用。

ImageIO.read()将返回null它不支持的格式。这是预期/记录的行为。

您可以使用 查询已安装支持的格式ImageIO.getReaderFormatNames()

于 2014-04-04T18:10:16.180 回答
1

解码 PPM 文件本身不可用:“图像 I/O具有对 GIF、PNG、JPEG、BMP 和 WBMP 的内置支持。” 但是您也许可以找到具有此支持的库(或插件),只需搜索java ppm imagereader之类的东西。

于 2014-04-04T18:10:50.510 回答
0

使用此页面PPM(便携式 PixMap)、PGM、PBM 图像文件 java 图像读取器/写入器中的 ImageIO 插件(在 LGPL 下获得许可),您可以读取/写入 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
于 2015-03-18T11:27:20.043 回答