Узкие места настройки изображения JAI - PullRequest
1 голос
/ 27 июля 2011

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

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

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

1 Ответ

1 голос
/ 23 августа 2011

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

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

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

...