2015-11-01 2 views
0

Я приближалась к Canvas с помощью Graphics через BufferStrategy с линиями, такими как(Java) Разрешение смены графики?

g.drawImage(bufferedImage, x, y, null); 

я в настоящее время это работает неукрашенный в JFrame, 1920x1080p в соответствии с разрешением моего ноутбука. Мне любопытно, есть ли способ изменить разрешение рендеринга Graphics, особенно понижая разрешение, чтобы повысить эффективность/скорость или установить на другой экран разного размера. Есть много объектов, которые визуализируются с помощью камеры, и игра работает достаточно хорошо, но любые полезные изменения в разрешении будут полезны в качестве дополнительных параметров в моих настройках.

Я исследовал это и не нашел хороших ответов. Спасибо за ваше время.

ответ

0

(изменения, такие как разрешение для печати.)

Лучше всего использовать DrawImage с меньшим изображением, и масштабирование ширины и высоты.

Теперь вы можете даже отобразить все в своем собственном BufferedImage, используя Graphics2D с BufferedImage.createGraphics и затем масштабировать. Не так приятно для текста или печати.

Или использовать Graphics2D масштабирование:

Для комплексной визуализации:

g.scale(2.0, 2.0); 
... // Draw smaller image 
g.scale(0.5, 0.5); 

Как вы можете себе представить, это, вероятно, не поможет в потреблении памяти, помимо необходимости изображения меньшего размера. В какой-то момент все пиксели изображения должны указываться в цвете размера устройств. 256 цветов gif или 10KB jpg не помогут.

Другой способ поддержки высоких разрешений с жесткой памятью также существует. Там можно использовать черепичные изображения, см. ImageIO.

Важно, чтобы подготовить изображение за пределами paintComponent/paint.

Вы также можете пойти на совместимые с устройством бит-карты, если вы создадите свой собственный BufferedImage, но это кажется косвенным (GraphicsEnvironment).

Смежные вопросы