crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в сохранение картинки(.jpg, .gif) в файл из потока
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
thechicho Дата 6.10.2011, 15:43
  BRE, ты мозг!!! :yahoo:
сам пытался из асинхронной работы, сделать синхронную, но так и не допер как.

QEventLoop loop;
QNetworkAccessManager manager;
QNetworkReply *reply = manager.get( QNetworkRequest( QUrl( "http://prog.org.ru/Themes/default/images/smflogo.gif" ) ) );
QObject::connect( reply, SIGNAL( finished() ), &loop, SLOT( quit() ) );
loop.exec();


респект! :clapping:
eldar85 Дата 23.2.2010, 16:36
  ))))да ладно вам, спасибо вам за помощь!!) по идее у меня много планов, поэтому это так небольшое увлечение, хочется писать программки работающие с сетью)))
Litkevich Yuriy Дата 22.2.2010, 13:50
 
Цитата(SABROG @ 22.2.2010, 13:05) *
а так это нарушает закон РФ.
и ещё людям на нервы действует.
SABROG Дата 22.2.2010, 10:05
 
Цитата(eldar85 @ 22.2.2010, 2:52) *
пока чисто для развития, но очень денежка нужна, скорее всего буду)) а вы тоже?))


Опыт с OCR конечно полезным был бы, т.ч. в академических целям можно было бы, а так это нарушает закон РФ.
Litkevich Yuriy Дата 22.2.2010, 5:29
  eldar85, прочитай тему Справка по кнопкам и тэгам форума
eldar85 Дата 22.2.2010, 2:52
 
Цитата(SABROG @ 22.2.2010, 4:20) *
Цитата
QFile file("captcha.gif");


Спам-бота пишешь?


пока чисто для развития, но очень денежка нужна, скорее всего буду)) а вы тоже?))
SABROG Дата 22.2.2010, 1:20
 
Цитата
QFile file("captcha.gif");


Спам-бота пишешь?
eldar85 Дата 21.2.2010, 22:21
  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();


вот и так попробывал, один хрен прога вылетает с предложением отправить отчет в майкрософт)))

Цитата(BRE @ 22.2.2010, 1:14) *
Цитата(eldar85 @ 21.2.2010, 21:51) *
почему то такая запись вообще вызывает ошибку программы и винда ее сразу закрывает.

Метод QHttp::get запускает асинхронную загрузку данных, а ты следующей строкой закрываешь файл, в который он должен сохранять результат.
Примеры загрузки с использованием QHttp и QNetworkAccessManager. Загрузка принудительно делается синхронной, но это легко переделывается для работы с сигналами.

Раскрывающийся текст
void loader_http()
{
        QFile file( "save.gif" );
        if( !file.open( QIODevice::WriteOnly ) )
        {
                qDebug() << "Error create file";
                return;
        }

        QHttp http;
        QEventLoop loop;
        QObject::connect( &http, SIGNAL( done( bool ) ), &loop, SLOT( quit() ) );

        http.setHost( "www.prog.org.ru" );
        http.get( "/Themes/default/images/smflogo.gif", &file );
        loop.exec();

        qDebug() << http.state() << http.error() << http.bytesAvailable();
}

void loader_nam()
{
        QEventLoop loop;
        QNetworkAccessManager manager;
        QNetworkReply *reply = manager.get( QNetworkRequest( QUrl( "http://prog.org.ru/Themes/default/images/smflogo.gif" ) ) );
        QObject::connect( reply, SIGNAL( finished() ), &loop, SLOT( quit() ) );
        loop.exec();

        qDebug() << reply->error() << reply->bytesAvailable();
        QByteArray buf = reply->readAll();
        QFile file( "save.gif" );
        if( file.open( QIODevice::WriteOnly ) )
        {
                file.write( buf );
        }
}




Большое спасибо!!!!!!!!!!!!!!!!!! работает))))))))))
BRE Дата 21.2.2010, 22:14
 
Цитата(eldar85 @ 21.2.2010, 21:51) *
почему то такая запись вообще вызывает ошибку программы и винда ее сразу закрывает.

Метод QHttp::get запускает асинхронную загрузку данных, а ты следующей строкой закрываешь файл, в который он должен сохранять результат.
Примеры загрузки с использованием QHttp и QNetworkAccessManager. Загрузка принудительно делается синхронной, но это легко переделывается для работы с сигналами.

Раскрывающийся текст
void loader_http()
{
        QFile file( "save.gif" );
        if( !file.open( QIODevice::WriteOnly ) )
        {
                qDebug() << "Error create file";
                return;
        }

        QHttp http;
        QEventLoop loop;
        QObject::connect( &http, SIGNAL( done( bool ) ), &loop, SLOT( quit() ) );

        http.setHost( "www.prog.org.ru" );
        http.get( "/Themes/default/images/smflogo.gif", &file );
        loop.exec();

        qDebug() << http.state() << http.error() << http.bytesAvailable();
}

void loader_nam()
{
        QEventLoop loop;
        QNetworkAccessManager manager;
        QNetworkReply *reply = manager.get( QNetworkRequest( QUrl( "http://prog.org.ru/Themes/default/images/smflogo.gif" ) ) );
        QObject::connect( reply, SIGNAL( finished() ), &loop, SLOT( quit() ) );
        loop.exec();

        qDebug() << reply->error() << reply->bytesAvailable();
        QByteArray buf = reply->readAll();
        QFile file( "save.gif" );
        if( file.open( QIODevice::WriteOnly ) )
        {
                file.write( buf );
        }
}
eldar85 Дата 21.2.2010, 21:51
  почему то такая запись вообще вызывает ошибку программы и винда ее сразу закрывает.
главное косяк где то в этой строке http->get("http://www.какой нить адресс.gif", &file);
если написать так http->get("http://www.какой нить адресс.gif"); то зависания не происходит.
Хотя я вообще не уверен что делаю тут хоть что то правельно...
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 29.3.2024, 18:56