如何在qml中将二进制代码转换为png图像?

时间:2011-07-19 12:50:43

标签: xml image qt binary-data qml

在qml中,我使用xml文件从服务器获取一些信息。在这个xml文件中有一个字段为 <图像> iVBORw0KGgoAAAANSUhEUgAAA2AAAALKCAYAAABUYjK ........< /图像&gt ;.  我在其他字段中使用XmlListModel和ListView,但如何将此代码转换为png图像。

2 个答案:

答案 0 :(得分:15)

我没有尝试自己,但如果QML支持数据URI方案(http://en.wikipedia.org/wiki/Data_URI_scheme),请尝试

Image {
    source: "data:image/png;base64," + model.imageData
}

答案 1 :(得分:0)

我会实现一个自定义QDeclarativeImageProvider,它会根据编码数据创建一个图像。 然后你可以在你的代表中做这样的事情:

// ...

Image {
    source: "image://encodedimage/" + model.imageData
}

// ...

看看this example,它可能是您实施的起点。

如果图像是base64编码的,那么你可以创建一个像这样的图像(未测试):

QByteArray ba = QByteArray::fromBase64(imageDataString.toAscii());
QImage image = QImage::fromData(ba, "PNG");