Как я могу преобразовать двоичные коды в PNG изображения в QML? - PullRequest
6 голосов
/ 19 июля 2011

В qml я использую XML-файл для получения некоторой информации с сервера.В этом XML-файле есть поле как iVBORw0KGgoAAAANSUhEUgAAA2AAAALKCAYAAABUYjK ........ .Я использую XmlListModel и ListView для другого поля, но как я могу преобразовать этот код в изображение PNG.

Ответы [ 2 ]

15 голосов
/ 19 июля 2011

Я сам не пробовал, но если QML поддерживает схему URI данных (http://en.wikipedia.org/wiki/Data_URI_scheme),, попробуйте

)
Image {
    source: "data:image/png;base64," + model.imageData
}
0 голосов
/ 19 июля 2011

Я бы реализовал пользовательский QDeclarativeImageProvider, который создает изображение из закодированных данных. Затем вы можете сделать что-то вроде этого в вашем делегате:

// ...

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

// ...

Посмотрите на этот пример , это может быть отправной точкой для вашей реализации.

Если изображение в кодировке base64, то вы можете создать такое изображение (не проверено):

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