Чтение 48-битной PPM (PNM) и сохранение в 24-битном формате JPEG с использованием JAI - PullRequest
0 голосов
/ 09 февраля 2011

У нас был процесс, в котором мы читали 24-битный файл ppm (8 бит на цвет), обрезали его и изменяли его размер, а затем сохраняли его в виде эскиза jpeg, используя поддержку JAI для файлов ppm / pnm.

Из-за некоторых проблем с качеством при создании оригинальных ppm-файлов было решено создать 48-битные ppm-файлы (16 бит на цвет).Теперь, когда мы читаем файл PPM, мы все еще получаем BufferedImage с ColorModel [ColorModel: #pixelBits = 24 numComponents = 3 цветового пространства = java.awt.color.ICC_ColorSpace@147f330 прозрачность = 1 имеет альфа = ложь isAlphaPre = false]

Если вы попытаетесь сохранить изображение в формате JPEG, оно выглядит очень странно, так как оно все еще использует 8 бит на цвет.Происходит ли это, когда изображение загружается или сохраняется, неизвестно, но мы подозреваем, что, поскольку ColorModel сообщает о 24 пиксельных битах, похоже, это проблема загрузки.Если я задаю 24-битный ppm, то сообщаемая цветовая модель будет такой же.

Поддерживает ли JAI только 24-битные (8 бит на цвет) изображения в ppm?Я не смог найти однозначного ответа на этот вопрос.

Как я могу прочитать 48-битное изображение на миллион и сохранить его как 24-битный JPEG-файл?

Любые предложения будут оценены.

1 Ответ

0 голосов
/ 14 марта 2011

Мои 2 цента, попробуйте JAI Image I / O Tools, набор дополнительных кодеков для JAI, 1.1 .Поддержка PPM, но не уверен, что 48bit PPM также.

...