首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试在Blackberry Cascades QT和QML中下载图像

尝试在Blackberry Cascades QT和QML中下载图像
EN

Stack Overflow用户
提问于 2012-10-19 01:45:51
回答 3查看 1.5K关注 0票数 1

我正在尝试下载黑莓级联,C++,QT的图像。

我基本上使用的代码看起来像这样:

代码语言:javascript
复制
void MyClass::download() {

    QUrl url(imagePath);
    QNetworkRequest request(url);
    Q_ASSERT(connect(networkAccessManager_, SIGNAL(finished(QNetworkReply *)), this, SLOT(saveImage(QNetworkReply *))));

    networkAccessManager_->get(request);

}

void MyClass::saveImage(QNetworkReply *) {
    QByteArray imageData = reply->readAll();

    if (reply->error() != QNetworkReply::NoError) {
        qDebug() << "an error occured downloading the image";
        return;
    }

    qDebug() << imageData;
    //...

当我这样做的时候,imageData只包含:“˜,而不是我下载的图像的全部内容。

有人能给我解释一下吗?我该怎么做呢?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-10-25 04:04:30

实际上,我认为图像正在下载中。我以为它只有几个字节被下载,但实际上它不仅仅是几个字节-这就是为什么当用qDebug打印出来时没有显示右引号的原因(整个图像在一行上)。

票数 0
EN

Stack Overflow用户

发布于 2012-10-19 18:48:50

它是QByteArray格式的,这就是为什么它会这样显示的原因。只需将其传入Image对象的构造函数,如下所示:

代码语言:javascript
复制
Image image = Image(reply->readAll());
imageView->setImage(image);

应该能行得通。如果不这样做,图像将会太大而无法放入ImageView。级联ImageView可以处理的图像的最大尺寸为2048。因此您可能必须使用ImageData类将大图像复制到级联ImageView中。

我也试着从这个url加载图像,它适用于这个url,不需要使用任何ImageData类

票数 3
EN

Stack Overflow用户

发布于 2012-10-19 05:03:03

您可能希望检查QNetworkReply是否将您重定向到实际图像。如果是,您将收到一个新的QUrl,该QUrl将用于获取新的请求。查看QNetworkRequest::Attributes的文档

代码语言:javascript
复制
void MyClass::saveImage(QNetworkReply *reply) {
    QUrl redirect = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl();
    if( redirect.isValid() ) {
        QNetworkRequest request(redirect);
        networkAccessManager_->get(request);
    }
    else {
        QByteArray imageData = reply->readAll();

        if (reply->error() != QNetworkReply::NoError) {
            qDebug() << "an error occured downloading the image";
            return;
        }

        qDebug() << imageData;
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12960592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档