Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Изменение размеров изображения во Фрейме


Автор: AlmazDD 30.4.2013, 18:26
Доброго всем времени суток.

Пишу небольшую 2d-игру на Джаве. Отрисовка графики идет через класс Graphics2D внутри JPanel, находящегося на JFrame. 

И вот возникла проблема — как правильно масштабировать графику в окне без потери качества? Ибо имеющийся у меня сейчас вариант, по-моему, не самый лучший — я беру размеры фрейма, делю это число на 1000 (методом научного тыка вывел эту цифру, с ней картинка масштабирована почти так, как должна), а далее, у каждого объекта на экране, значение ширины, высоты и координат на плоскости умножаю на получившееся число. Результат вполне удовлетворяет, но как-то это не красиво — везде эти width*MainFrame.ratio, height*MainFrame.ratio и т.д. В общем, мне кажется, что есть куда более хороший способ (я с Джавой знаком не очень давно, поэтому запросто могу о многом не знать).

Также пробовал отрисовывать всю графику в BufferedImage и потом ресайзить, однако, результат выходил ужасным — качество картинки получалось отвратительным.

Заранее благодарю за помощь.

Автор: leskar 9.8.2013, 16:26
Как вариант - ресайзить в процессе отрисовки. Навряд ли операции умножения/деления сильно скажутся на производительности.  Или вообще все объекты не рисовать руками, а подгружать из картинок.

Если не работали с графикой - погуглите на тему RenderingHints и MediaTracker. Может пригодится. 

Автор: Snake174 19.8.2013, 11:18
http://www.youtube.com/watch?v=9dzhgsVaiSo

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)