Как правильно загрузить изображение с Jpanel ?

0
23 мая 2017 15:47
Есть программка в которой есть фрейм (600 х 600 но изменять его не запрещено) в фрейме в центральную панель загружается изображение jpg после чего загружается изображение png с прозрачным фоном, которое ложится сверху. В программке реализовано перемещение верхней картинки (png) в нужное место, после чего ее можно сохранить. Так вот я создаю BufferedImaje ...
screenBufferedImage = new BufferedImage(bufferedImage.getWidth(), bufferedImage.getHeight(), BufferedImage.TYPE_INT_RGB); // по размеру оригинальной картинки (jpg)
Graphics2D g2 = screenBufferedImage.createGraphics();
panel.paint(g2); // забираю картинку с панели таким способом ***
BufferedImage screen = screenImage(bufferedImage, bufferedImageOverlay, screenBufferedImage); // этот метод кадрирует изображение
if(writer.savePicture(screen))JOptionPane.showMessageDialog(null, "Изображение успешно сохранено!", "Успех", JOptionPane.INFORMATION_MESSAGE); // этот метод записывает изображение в файл

проблема в том, что для записи картинку я получаю (panel.paint(g2);) не оригинального размера как jpg, а размером панели (600 х 600 если раздвинуть фрейм то увеличивается и картинка) т.е. по сути после записи получается черный квадрат (при чем общий размер квадрата такой как нужно) с изображением примерно 600 х 600 в левом верхнем углу, что в корне не правильно. Изображение не должно зависеть от размера панели. Подскажите как это правильно это реализовать?
Изображение на панель помещается из BufferedImage.

Ответов: 1

0
24 мая 2017 06:21
эта [censored] так напоминает тот бред, что я карябал, когда только начинал изучать яву, что аж прослезился.
ты абсолютно не следишь за потоком данных и поэтому у тебя ничего не получается.

начни пожалуй с изучения свинга. я тут как-то выкладывал ссылку на приличные видеоуроки по нему. (давненько уже)

как только ты сможешь вывести на экран, то, что хочешь, то дальше элементарно: у каждой компоненты есть метода createImage которая делает скриншот.
а дальше просто сохраняешь результат.
Модераторы: Нет
Сейчас эту тему просматривают: Нет