Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> сохранение картинка с помощью jFileChooser 
V
    Опции темы
Swatch
Дата 15.10.2007, 06:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: нет
Всего: 1



Добрый день

Кто-нибудь знает, как реализовать сохранение картинки с помощью jFileChooser??? То есть, есть форма, на которой есть лейбл с иконкой. Нужно сохранить иконку, как обычную JPEG-картинку с помощью СэйвДиалога. Как это можно сделать? Если можно, то объясните на примере, пожалуйста. smile 
PM MAIL   Вверх
batigoal
Дата 15.10.2007, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 7
Всего: 151



Проблема с чем - получить картинку (скриншот) или сохранить её?


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Swatch
Дата 15.10.2007, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: нет
Всего: 1



Сохранить ее.

Код

           ImageIO.write(image, "jpg", output);// что писать в output???


Добавлено через 8 минут и 53 секунды
и в имейдж... как из обычного Имэйдж сделать renderedImage???
PM MAIL   Вверх
powerOn
Дата 15.10.2007, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 31
Всего: 159



jFileChooser - это просто способ получить имя файла. Реальное сохранение происходить как раз такой строчкой:

Цитата(Swatch @  15.10.2007,  10:09 Найти цитируемый пост)
Код

ImageIO.write(image, "jpg", output);// что писать в output???


Вот тут объясняется как использовать JFileChooser


Это сообщение отредактировал(а) powerOn - 15.10.2007, 09:20


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Swatch
Дата 15.10.2007, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: нет
Всего: 1



я читала, как использовать jFileChooser. дело в том, что у меня все картинки хранятся в базе. они хранятся так как блобы. а ImageIO.write(image, "jpg", output) нужен RenderedImage в качестве image-а. не подскажите, как его получить из блоба?
PM MAIL   Вверх
powerOn
Дата 15.10.2007, 09:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 31
Всего: 159



BufferedImage является RenderedImage. Просто создай BufferedImage из данных полученых из БД, а дальше работай с ним.


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Swatch
Дата 15.10.2007, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: нет
Всего: 1



Угу, создала вот так: 
Код

         BufferedImage image;
        try {
            image = ImageIO.read(blob.getBinaryStream());
        } catch (SQLException ex) {
            image = null;
        } catch (IOException ex) {
            image = null;
        }
        int rVal = jFileChooser2.showSaveDialog(this);
        if (rVal == jFileChooser2.APPROVE_OPTION){
            File output = new File ("propertyImage.jpg");
            try {
                ImageIO.write(image, "jpg", output);
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }


Но только ничего не сохраняется. почему так может быть? image точно не равен нулу (смотрела под дебагом)... :(
blob - это мой блоб из базы.
PM MAIL   Вверх
powerOn
Дата 15.10.2007, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 31
Всего: 159



Цитата(Swatch @  15.10.2007,  10:47 Найти цитируемый пост)
Но только ничего не сохраняется. 

В каком смысле? 
Файл не создается? - ищите его по относительному пути от рабочей директории.
Файл создается, но пустой? - значит такие данные сохраняете.


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Swatch
Дата 15.10.2007, 10:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: нет
Всего: 1



Так и не могу найти файл. дописала вот так:
Код

File output = new File (jFileChooser2.getCurrentDirectory().getAbsolutePath()+"propertyImage.jpg");


сохраняю на рабочий стол... ничего нет:(

Добавлено через 5 минут и 55 секунд
все нашла. 

надо было / поставить перед названием. 

Но возник такой вопрос: как сохранять под названием, которое юзер ввел в jFileChooser???
PM MAIL   Вверх
powerOn
Дата 15.10.2007, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 31
Всего: 159



попробуй на C:/ сохранить.

Добавлено через 1 минуту и 54 секунды
Цитата(Swatch @  15.10.2007,  11:05 Найти цитируемый пост)
Но возник такой вопрос: как сохранять под названием, которое юзер ввел в jFileChooser??? 

по ссылке выше есть пример работы с JFileChooser. Там все описано.


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
Swatch
Дата 15.10.2007, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: нет
Всего: 1



вроде, jFileChooser2.getName(). ТОлько что бы я не вводила, у меня название становится нулл... :(
PM MAIL   Вверх
batigoal
Дата 15.10.2007, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 7
Всего: 151



Swatch, покажи свой код с сохранением.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Swatch
Дата 15.10.2007, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: нет
Всего: 1



Код

int rVal = jFileChooser2.showSaveDialog(this);
        if (rVal == jFileChooser2.APPROVE_OPTION){
            File output = new File (jFileChooser2.getCurrentDirectory().getAbsolutePath()+"/"+jFileChooser2.getName()+".jpg");
            try {
                ImageIO.write(image, "jpg", output);
            } catch (IOException ex) {
            }
        }

PM MAIL   Вверх
batigoal
Дата 15.10.2007, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 7
Всего: 151



Swatch, попробуй так:

Код

if (result == JFileChooser.APPROVE_OPTION) {
         fFile = fc.getSelectedFile ();
         if (fFile.exists ()) {
             int response = JOptionPane.showConfirmDialog (null,
               "Overwrite existing file?","Confirm Overwrite",
                JOptionPane.OK_CANCEL_OPTION,
                JOptionPane.QUESTION_MESSAGE);
             if (response == JOptionPane.CANCEL_OPTION) return false;
         }


(пример взят отсюда)


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Swatch
Дата 15.10.2007, 13:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: нет
Всего: 1



но ведь getSelectedFile () возврящает файл, который был выбран... а если я ничего не выбираю, а хочу сохранить под своим именем?
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0566 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.