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

发布于 2024-11-25 04:35:59 字数 184 浏览 0 评论 0原文

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

In qml, i am using xml file to get some information from server. In this xml file there is a field as
< image>iVBORw0KGgoAAAANSUhEUgAAA2AAAALKCAYAAABUYjK........< /image>.
I am using XmlListModel and ListView for other field but how can i convert this code to png image.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

玩物 2024-12-02 04:35:59

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

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

I didn't try myself, but if QML supports the data URI scheme (http://en.wikipedia.org/wiki/Data_URI_scheme), try

Image {
    source: "data:image/png;base64," + model.imageData
}
写下不归期 2024-12-02 04:35:59

我将实现一个自定义 QDeclarativeImageProvider,它创建一个来自编码数据的图像。
然后你可以在你的委托中执行类似的操作:

// ...

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

// ...

看看 这个示例,它可能是您实施的起点。

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

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

I would implement a custom QDeclarativeImageProvider, which creates an image from the encoded data.
Then you can do something like this in your delegate:

// ...

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

// ...

Have a look at this example, it might be a starting point for your implementation.

If the image is base64 encoded, then you can create an image like that (not tested):

QByteArray ba = QByteArray::fromBase64(imageDataString.toAscii());
QImage image = QImage::fromData(ba, "PNG");
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文