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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Коневертировать картинку в String 
:(
    Опции темы
softrix
Дата 21.8.2009, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Возможно ли конвертировать картинку в Стринг, а потом Стринг сохранить как картинку. Что-то типа file_get_contents() в php

Я получаю картинку так:
Код

URL url = new URL("http://mysite.ru/picture.gif");
HttpURLConnection hcon = (HttpURLConnection)url.openConnection();
InputStream is = hcon.getInputStream();
 int i=is.read();
String ss = "";

while (i!=-1){

ss += (char)i;
i=is.read();

}


Далее пытаюсь сохранить в файл так:
Код

PrintWriter out = new PrintWriter(new FileOutputStream("c:/temp/1.gif"));
out.write(ss);


На выходе получается  байда !

Мне нужна именно строка
PM MAIL   Вверх
AntonSaburov
Дата 21.8.2009, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: 51
Всего: 118



Картинка - это байты. А строка - это символы. Которые занимают по два байта.
Может проще тогда байт конвертировать в два четыре символа в виде шестнадцатиричного числа. А потом обратно.
Хотя я не понимаю - зачем все это надо ?
PM MAIL WWW ICQ   Вверх
revenforv
Дата 21.8.2009, 20:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Насколько помнится, в php string - это ничто иное как массив байтов. Ну дык вот у вас то же самое и есть  массив байтов.
Если хотите читать из url символы utf нужно использовать другой поток -  InputStreamReader.
Код

void foo()
{
        URL url = new URL("http://mysite.ru/picture.gif");
        HttpURLConnection hcon = (HttpURLConnection) url.openConnection();  
        
        BufferedReader in
            = new BufferedReader(new InputStreamReader(hcon.getInputStream()), 80);
        
        char[] buf = new char[80];
        StringBuffer sb = new StringBuffer();
        while(in.read(buf) != -1)
            sb.append(buf);
        
        String str = sb.toString();

        FileWriter fw = new FileWriter(new File("c:/temp/1.gif"));
        fw.write(str);
}


Добавлено через 8 минут и 20 секунд
Можно еще попробовать класс ImageIO (если речь идет именно о картинках).

Код

void foo()
{
    URL url = new URL("http://mysite.ru/picture.gif");
    HttpURLConnection hcon = (HttpURLConnection) url.openConnection();

    // тут читаем
    InputStream is = new BufferedInputStream(hcon.getInputStream());
    BufferedImage input = ImageIO.read(inputFile);

    // а тут пишем в файл
    File outputFile = new File(name+".gif");
    ImageIO.write(input, "GIF", outputFile);
}

PM MAIL Skype   Вверх
garbuz
Дата 21.8.2009, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 3
Всего: 11



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

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

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


 




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


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

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