Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Черные рамки при сохранении диалога в JPG / 7 сообщений из 7, страница 1 из 1
17.06.2013, 18:31:18
    #38300546
Полуламер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Черные рамки при сохранении диалога в JPG
Нашел довольно простенький код, который вроде нормально работает:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    public void saveComponentAsJPEG(Component myComponent, String filename) {
        Dimension size = myComponent.getSize();
        BufferedImage myImage = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_RGB);
        Graphics2D g2 = myImage.createGraphics();
        myComponent.paint(g2);
        try {
            OutputStream out = new FileOutputStream(filename);
            ImageIO.write(myImage, "jpg", out);
            out.close();
        } catch (Exception e) {
        }
    }



В качестве myComponent выступает созданный JDialog. У сохраненной картинки вместо рамок и шапки - чернота. В принципе нестрашно, но нельзя ли как-то это убрать? Еще пробовал через использование класса Robot, но там другая беда - сначала перед сохранением вызывается диалог выбора директория, он тоже копируется.
...
Рейтинг: 0 / 0
17.06.2013, 19:01:06
    #38300570
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Черные рамки при сохранении диалога в JPG
Это нативный envelope его нельзя отрисовать средствами Swing. Можно создать фрейм с setUndecorated(true).
Проблему с роботом не понял. Вызовите робота до появления диалога.
...
Рейтинг: 0 / 0
18.06.2013, 11:21:17
    #38301184
Полуламер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Черные рамки при сохранении диалога в JPG
robot отрабатывает нормально, но мне нужно сохранять картинку уже после закрытия диалога - там надо выбрать каталог сохранения. Когда я это делаю, происходит мгновенная "съемка" и закрывающийся диалог успевает частично запечатлеться, это видно на изображении:

http://savepic.org/3697679.jpg

Возможным решением было бы дождаться, пока этот диалог совсем не исчезнет и уже тогда запускать процедуру сохранения, но я без понятия как это сделать. Могли бы Вы также поподробнее объяснить про setUndecorated ? Натыкался на что-то похожее, попробовал - почему-то не получилось.
...
Рейтинг: 0 / 0
18.06.2013, 11:24:06
    #38301193
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Черные рамки при сохранении диалога в JPG
Покажите ваш код с диалогом и роботом.
...
Рейтинг: 0 / 0
18.06.2013, 11:26:04
    #38301197
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Черные рамки при сохранении диалога в JPG
setUndecorated надо вызывать у корневого фрейма ещё до его появления.
Тогда Swing не будет использовать нативный envelope для окон. Вместо этого будет сам рисовать шапку и border.
...
Рейтинг: 0 / 0
18.06.2013, 11:27:43
    #38301201
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Черные рамки при сохранении диалога в JPG
А действительно ли вам нужно окно целиком?
Вместо
Код: java
1.
saveComponentAsJPEG(dialog, file);

используете
Код: java
1.
saveComponentAsJPEG(dialog.getContentPane(), file);
...
Рейтинг: 0 / 0
18.06.2013, 11:37:27
    #38301222
Полуламер
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Черные рамки при сохранении диалога в JPG
BlazkowiczА действительно ли вам нужно окно целиком?
Вместо
Код: java
1.
saveComponentAsJPEG(dialog, file);

используете
Код: java
1.
saveComponentAsJPEG(dialog.getContentPane(), file);


Совершенно не нужна мне шапка этого окна. А Вам в который раз уже большое спасибо!
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Черные рамки при сохранении диалога в JPG / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]