Java 读取48位PPM(PNM)并使用JAI保存为24位jpeg

Java 读取48位PPM(PNM)并使用JAI保存为24位jpeg,java,jpeg,jai,ppm,Java,Jpeg,Jai,Ppm,我们有一个过程,在这个过程中,我们将读取一个24位ppm,每种颜色8位文件,对其进行裁剪并调整大小,然后利用ppm/pnm文件的JAI支持将其保存为jpeg缩略图 由于产生原始ppm文件的一些质量问题,决定创建48位ppm文件,每种颜色16位。现在,当我们读取PPM文件时,仍然会得到一个颜色模型为[ColorModel:pixelBits=24 numComponents=3 color space=java.awt.color.ICC]的BuffereImage_ColorSpace@147f

我们有一个过程,在这个过程中,我们将读取一个24位ppm,每种颜色8位文件,对其进行裁剪并调整大小,然后利用ppm/pnm文件的JAI支持将其保存为jpeg缩略图

由于产生原始ppm文件的一些质量问题,决定创建48位ppm文件,每种颜色16位。现在,当我们读取PPM文件时,仍然会得到一个颜色模型为[ColorModel:pixelBits=24 numComponents=3 color space=java.awt.color.ICC]的BuffereImage_ColorSpace@147f330透明度=1时,α=假isAlphaPre=假]

如果您尝试将图像保存为jpeg格式,它看起来非常奇怪,好像每种颜色仍使用8位。加载或保存图像时是否会发生这种情况尚不清楚,但我们怀疑,因为ColorModel显示的是24像素位,这似乎是一个加载问题。如果我给它一个24位ppm的报告颜色模型是相同的

JAI是否仅支持每色24位8位ppm图像?我找不到这个问题的确切答案

如何读取48位ppm图像并将其保存为24位jpeg


任何建议都将不胜感激。

我的2美分,试试JAI图像I/O工具,这是一套用于JAI的补充编解码器。支持PPM,但不确定是否也支持48位PPM