Назначение 16-битных сэмплов на WriteableRaster - PullRequest
1 голос
/ 07 августа 2011

Как создать изображение 16 бит на канал в Clojure?

Я работаю с классом ImageIO для чтения и записи файлов изображений, и кажется, что файлы изображений читаются очень хорошо.Даже кажется, что 16-битные данные помещаются в правильные цветовые полосы.

Но мое приложение требует преобразования, в частности преобразования «наложения» Gimp, которое я должен применить, просматривая данные изображения для двух отдельныхизображений.Поэтому из каждого изображения я беру необработанные данные из соответствующих полос, запускаю преобразование и затем записываю результат в новое изображение.

Но я не могу найти способ заставить новое изображение принять 16-битовые значения.Я должен уменьшить результат с 16 бит на канал до 8 бит на канал, что я не хочу делать.

Я создаю свое изображение так:

(BufferedImage. 800 600 BufferedImage/TYPE_INT_RGB)

Что должно быть эквивалентно

BufferedImage anon = new BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB);

Теперь, есть ли способ создать новый BufferedImage, который принимает 16 бит на канал?Или мне нужно переключиться на другую библиотеку?

Если я переключаюсь, мои требования следующие:

a) Понимание цветового пространства b) 16 бит на канал

До тех пор я буду стараться изо всех сил с 8 битами.

Обновление 2011/08/10 : хотя может пройти до двух недель, прежде чем я смогу попробовать это, может показаться, чтоJava Advanced Advanced Imaging API (JAI) делает то, что мне нужно.Он поддерживает цветовые пространства и поддерживает до 32 бит на канал / полосу.

1 Ответ

2 голосов
/ 10 августа 2011

Насколько я знаю (поправьте меня, если я ошибаюсь) это:

(BufferedImage. 800 600 BufferedImage/TYPE_INT_RGB)

равно не эквивалентно (*):

BufferedImage anon = BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB);

а точнее:

BufferedImage anon = new BufferedImage(800, 600, BufferedImage.TYPE_INT_RGB);

Если вы хотите (*), тогда сделайте:

(. BufferedImage 800 600 BufferedImage/TYPE_INT_RGB)

Может быть, опечатка в вашем посте ... или, возможно, нет? (Да, это должен быть комментарий, но я пока не могу этого сделать)

...