当前位置: 首页 > 知识库问答 >
问题:

Java ImageIO读取ppm格式的图像返回null

宗政天逸
2023-03-14

执行javax。图像IO。ImageIO是否读取PPM格式的图像(如原始比特P6)?

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

没有异常,但rawimagenull。其他格式如png和jpg工作正常。

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

我错过什么了吗?

共有3个答案

卜泓
2023-03-14

使用此页面PPM(Portable 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
宗政深
2023-03-14

解码PPM文件本身不可用:“图像I/O内置了对GIF、PNG、JPEG、BMP和WBMP的支持。”但您可能会找到一个支持此支持的库(或插件),只需搜索类似java ppm图像读取器的东西。

后树
2023-03-14

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

图像。read()将为其不支持的格式返回null。这是预期/记录的行为。

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

 类似资料:
  • 本文向大家介绍python 读取.nii格式图像实例,包括了python 读取.nii格式图像实例的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,大家还是直接看代码吧~ 3D显示结果: ADNI数据维度(256,256,170)分段显示: 补充知识:python nii图像扩充 我就废话不多说了,大家还是直接看代码吧~ 以上这篇python 读取.nii格式图像实例就是小编分享给大家的

  • 返回给定毫秒数的可读格式。 用适当的值来划分ms,以获得 day,hour,minute,second 和 millisecond 的适当值。 通过 Array.filter() 使用 Object.entries() 只保留非零值。 使用 Array.map() 为每个值创建字符串,并且适当复数化。 使用 String.join(', ') 将这些值组合成一个字符串。 const formatD

  • 读取文件已支持 windows 系统,版本号大于等于 1.3.4.1; 扩展版本大于等于 1.2.7; PECL 安装时将会提示是否开启读取功能,请键入 yes; 优势 最大内存 == 最大单元格数据体积 该模式可满足 xlsx 大文件读取 函数原型 nextCellCallback(callable $callback, string $sheetName = NULL): void 回调函数

  • 包的类提供读取和写入图像的方法。使用OpenCV,可以读取图像并将其存储在矩阵中(如果需要,可在矩阵上执行转换)。之后可以将处理后的矩阵写入文件。 类的方法用于使用OpenCV读取图像。 以下是此方法的语法。 它接受一个参数(文件名),一个字符串类型的变量,表示要读取的文件的路径。 下面给出了使用OpenCV库读取Java图像的步骤。 第1步:加载OpenCV本机库 使用方法加载OpenCV本机库

  • 我使用tess4j api来读取数字图像。 代码如下: 程序将数字读取为错误。无法找到问题。 输出: 1 1 3 251 问候,瓦苏

  • 我想知道如何通过在Python中快速高效地获取RGBE格式的像素值来读取HDR图像(.HDR)。 以下是我尝试过的一些事情: 或者: 这会读取图像,但会以RGB格式给出值。 如何在不改变RGB值的情况下获得第4rth通道,即每个像素的“E”通道?我更喜欢只涉及imageio的解决方案,因为我仅限于使用该模块。