W qml, używam pliku xml, aby uzyskać pewne informacje z serwera. W tym pliku xml znajduje się pole o numerze: image> iVBORw0KGgoAAAANSUhEUgAAA2AAAALKCAYAAABUYjK ........ </image>. Używam XmlListModel i ListView dla innych pól, ale jak mogę przekonwertować ten kod na obraz PNG.Jak mogę przekonwertować kody binarne na obraz png w qml?
5
A
Odpowiedz
11
nie próbowałem sam, ale jeśli QML obsługuje danych schematu URI (http://en.wikipedia.org/wiki/Data_URI_scheme), spróbuj
Image {
source: "data:image/png;base64," + model.imageData
}
0
Wdrożyłbym niestandardowy QDeclarativeImageProvider
, który tworzy obraz z zakodowanych danych. Następnie można zrobić coś takiego w swoim delegatem:
// ...
Image {
source: "image://encodedimage/" + model.imageData
}
// ...
Wystarczy popatrzeć na this example, może być punktem wyjścia do realizacji.
Jeśli obraz jest zakodowane base64, można utworzyć obraz takiego (nie sprawdzone)
QByteArray ba = QByteArray::fromBase64(imageDataString.toAscii());
QImage image = QImage::fromData(ba, "PNG");
Próbowałem, to działa. To może być najlepsze i najkrótsze rozwiązanie! – hiddenbit
dziękuję bardzo, to działa świetnie i naprawdę proste –