Узкие места корректировки изображений JAI

Я использую библиотеку JAI для настройки серии изображений, каждое размером около 1300x1000. Я настраиваю интенсивность пикселей с помощью «Изменить масштаб» и добавляю текст и линии с помощью объекта Graphics2D из метода TiledImage.createGraphics(). Затем я изменяю размер изображения, чтобы оно соответствовало размеру экрана, с помощью «subsampleaverage» и визуализирую на экране с помощью Graphics2D.drawRenderedImage(). До этого момента наблюдается небольшое замедление, рендеринг занимает около 40-60 миллисекунд.

Однако, если я добавляю только текст и строки, отображение замедляется до 100-200 миллисекунд. Кажется, я не могу понять, почему это так, так как добавление текста после или до настройки интенсивности пикселей - это нормально.

Я искал на сайте, но я не могу найти конкретного ответа. Многие предложения заключались в использовании BufferedImages, но преобразование из PlanarImages в BufferedImages, похоже, также имеет проблему с замедлением.


person ddukki    schedule 27.07.2011    source источник
comment
Всем, у кого есть эта проблема, я предлагаю использовать JOGL для отображения и изменения размера. Повозившись с JAI и JOGL, я смог исправить большинство проблем с замедлением.   -  person ddukki    schedule 09.08.2011


Ответы (1)


По-видимому, текст в Java по-прежнему отображается очень медленно. Глифы для каждого объекта Font должны быть визуализированы и нарисованы на объекте Graphics. С большим количеством текста на объекте объект Font вместе со всеми используемыми Glyphs создаются заново, что вызывает значительное замедление.

Даже при использовании JOGL наблюдается значительное замедление. Но использование одного и того же объекта TextRenderer упрощает ситуацию, создавая один объект Font и повторно используя его, пока TextRenderer жив. Конечно, это ограничивает вас от использования нескольких объектов Font, поскольку JOGL еще не реализовал функцию setFont, требующую от вас создания нового объекта TextRenderer для каждого нового шрифта, стиля шрифта и толщины шрифта.

Надеюсь, это поможет любому с подобными проблемами.

person ddukki    schedule 23.08.2011