![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
eldar85 |
![]()
Сообщение
#1
|
![]() программист ![]() ![]() ![]() Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
всем сдрасти) никак не могу справиться с такой проблемой, нужно картинку загрузить в формате .gif
делаю загрузку курлом в строку, потом записываю в файл, но файл получается какого то не правельного формата... что делать подскажите плиз... вот код: QString StringJPG; StringJPG.toStdString() = curl->load(http://........gif)->exec(); QFile file("captcha.gif"); file.open(QIODevice::WriteOnly); QDataStream out(&file); out << StringJPG; file.close(); |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
eldar85 |
![]()
Сообщение
#3
|
![]() программист ![]() ![]() ![]() Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
ну вместо точек там полный адресс картинки.
curl->load(http://........gif)->exec() а если вы имеете ввиду курловские функции, они самописные и я ими уже давно пользуюсь, работают очень хорошо. вот если вывести в консоль эту строку StringJPG.toStdString то будет видно следующее "HTTP/1.1 200 OK Server: nginx/0.7.61 Date: Wed, 10 Feb 2010 11:06:15 GMT Content-Type: image/gif Content-Length: 2141 Last-Modified: Thu, 24 Sep 2009 07:16:55 GMT Connection: keep-alive Accept-Ranges: bytes GIF89" причем на сайте картинка весит 2,2Кб , а у меня загруженный файл весит всего 4 байта. вообще что то нето... можете написать хотябы как правельно картинку сохранять из QString потоком в файл??? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
ну вместо точек там полный адресс картинки. нет я имел в виду curl->load(http://........gif)->exec() а если вы имеете ввиду курловские функции, StringJPG.toStdString() = эта функция вернёт объект, а не ссылку на него. Т.е. далее вы не сможете воспользоваться StringJPG (он не будет содержать резальтата присваивания). Может я и ошибаюсь.
|
|
|
eldar85 |
![]()
Сообщение
#5
|
![]() программист ![]() ![]() ![]() Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
так вот я и не знаю что и как тут сделать, посоветовали в QByteArray скопировать изображение, блин но тоже не знаю как и что написать... я в кьюти только научился окна создавать, а вот с файлами пока засада)
а мне сейчас прям срочно нужно сделать сохранение картинки в файл, а ума не хватает как это сделать... да к стати вы не ошибаетесь, так он вообще ничего не содержит) string Str = curl->load(http://........gif)->exec(); QString Str1 = Str.c_str(); только вот так выдается вот это: "HTTP/1.1 200 OK Server: nginx/0.7.61 Date: Wed, 10 Feb 2010 11:06:15 GMT Content-Type: image/gif Content-Length: 2141 Last-Modified: Thu, 24 Sep 2009 07:16:55 GMT Connection: keep-alive Accept-Ranges: bytes GIF89" блин но мне нужно нормально сохранить картинку в формате .jpg .gig |
|
|
Litkevich Yuriy |
![]()
Сообщение
#6
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
eldar85, я с Curl'ом не работал. Но судя по результату функции:
curl->load(http://........gif)->exec(); она не возвращает саму картинку. Тебе нужно найти функцию, в Curl'е, которая именно двоичные данные возвращает |
|
|
eldar85 |
![]()
Сообщение
#7
|
![]() программист ![]() ![]() ![]() Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
да я тоже так думаю)) потому что загружает он чисто текст...
я до этого не сталкивался с загрузкой картинок, поэтому было не к чему, а теперь приспичило и разобраться не могу никак))) ладно буду копаться)) спасибо за помощь) |
|
|
eldar85 |
![]()
Сообщение
#8
|
![]() программист ![]() ![]() ![]() Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
все же курлом никак не могу закачать картинку в файл.
подскажите пожалуйста как закачать картинку средствами Qt имено в файл. везде приведены примеры сохранения текстовых файлов и .html но нигде не слова о картинке формата .jpg .gif и прочее. написал пару примеров, но на практике вышла полная лажа...
вот что пришло на ум)) подскажите плиз, что тут не так? |
|
|
eldar85 |
![]()
Сообщение
#9
|
![]() программист ![]() ![]() ![]() Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
почему то такая запись вообще вызывает ошибку программы и винда ее сразу закрывает.
главное косяк где то в этой строке http->get("http://www.какой нить адресс.gif", &file); если написать так http->get("http://www.какой нить адресс.gif"); то зависания не происходит. Хотя я вообще не уверен что делаю тут хоть что то правельно... |
|
|
BRE |
![]()
Сообщение
#10
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: ![]() ![]() ![]() |
почему то такая запись вообще вызывает ошибку программы и винда ее сразу закрывает. Метод QHttp::get запускает асинхронную загрузку данных, а ты следующей строкой закрываешь файл, в который он должен сохранять результат. Примеры загрузки с использованием QHttp и QNetworkAccessManager. Загрузка принудительно делается синхронной, но это легко переделывается для работы с сигналами. Раскрывающийся текст
Сообщение отредактировал BRE - 21.2.2010, 22:14 |
|
|
eldar85 |
![]()
Сообщение
#11
|
![]() программист ![]() ![]() ![]() Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
QFile file;
file.setFileName("kartinka.jpg"); if(!file.open(QIODevice::WriteOnly)) { QMessageBox::warning(this, tr("HTTP GET"), tr("Can't write file") .arg(file.fileName()) .arg(file.errorString())); return; } QHttp *http = new QHttp; http->setHost("img68.imageshack.us"); http->get("/img68/6868/decayinghopesbyblackribca8.jpg", &file); file.close(); http->closeConnection(); вот и так попробывал, один хрен прога вылетает с предложением отправить отчет в майкрософт))) почему то такая запись вообще вызывает ошибку программы и винда ее сразу закрывает. Метод QHttp::get запускает асинхронную загрузку данных, а ты следующей строкой закрываешь файл, в который он должен сохранять результат. Примеры загрузки с использованием QHttp и QNetworkAccessManager. Загрузка принудительно делается синхронной, но это легко переделывается для работы с сигналами. Раскрывающийся текст
Большое спасибо!!!!!!!!!!!!!!!!!! работает)))))))))) |
|
|
SABROG |
![]()
Сообщение
#12
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
Цитата QFile file("captcha.gif"); Спам-бота пишешь? |
|
|
eldar85 |
![]()
Сообщение
#13
|
![]() программист ![]() ![]() ![]() Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#14
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
eldar85, прочитай тему Справка по кнопкам и тэгам форума
|
|
|
SABROG |
![]()
Сообщение
#15
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 1207 Регистрация: 8.12.2008 Из: Russia, Moscow Пользователь №: 446 Спасибо сказали: 229 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#16
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
eldar85 |
![]()
Сообщение
#17
|
![]() программист ![]() ![]() ![]() Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
))))да ладно вам, спасибо вам за помощь!!) по идее у меня много планов, поэтому это так небольшое увлечение, хочется писать программки работающие с сетью)))
|
|
|
thechicho |
![]()
Сообщение
#18
|
Студент ![]() Группа: Участник Сообщений: 38 Регистрация: 26.9.2011 Пользователь №: 2907 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
BRE, ты мозг!!!
![]() сам пытался из асинхронной работы, сделать синхронную, но так и не допер как.
респект! ![]() |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 3.7.2025, 7:53 |