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

发布于 2024-10-17 01:55:53 字数 606 浏览 7 评论 0原文

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

由于生成原始 ppm 文件时存在一些质量问题,因此决定创建 48 位 ppm 文件(每种颜色 16 位)。现在,当我们读取 PPM 文件时,我们仍然会得到一个 ColorModel 为 [ColorModel: #pixelBits = 24 numComponents = 3 color space = java.awt.color.ICC_ColorSpace@147f330 透明度 = 1 has alpha = false isAlphaPre = false] 的

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

JAI 是否仅支持 24 位(每种颜色 8 位)ppm 图像?我无法找到这个问题的任何明确答案。

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

任何建议将不胜感激。

We had a process where we would read a 24 bit ppm (8 bits per color) file, crop it and resize it then save it as a jpeg thumbnail making use of JAI support of ppm/pnm files.

Due to some quality issues producing the original ppm files it was decidied to create 48 bit ppm files (16 bits per color). Now when we read the PPM file we still get a BufferedImage with a ColorModel of [ColorModel: #pixelBits = 24 numComponents = 3 color space = java.awt.color.ICC_ColorSpace@147f330 transparency = 1 has alpha = false isAlphaPre = false]

If you try and save the image as a jpeg it looks very strange like it is still using 8 bits per color. Whether this happens when the image is loaded or saved is unknown, but we suspect since the ColorModel says 24 pixel bits it seems to be a loading problem. If I give it a 24 bit ppm the reported colour model is the same.

Does JAI only support 24 bit (8 bits per color) ppm images? I was unable to find any definitive answer to that question.

How can I read a 48 bit ppm image and and save it as an 24 bit jpeg?

Any suggestions would be appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

耳根太软 2024-10-24 01:55:53

我的 2 美分,尝试一下 JAI Image I/O Tools,这是 JAI 的一组补充编解码器, 1.1。支持 PPM,但不确定是否也支持 48 位 PPM。

My 2 cents, try JAI Image I/O Tools, a set of supplementary codecs for JAI, 1.1. Support PPM, but not sure if 48bit PPM also.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文