Ich schreibe eine Ubuntu Touch QML-App, die Bilder von einem Kameragerät erfasst und verarbeitet. Die Verarbeitung erfolgt über ein C ++ - Plugin, an das ich die URL des Bildes übergebe.
Ich kann Bilder erfolgreich speichern und vom C ++ - Plugin laden, aber ich muss die Bilder lieber nicht zuerst im Dateisystem speichern und stattdessen die Vorschau der In-Memory-Kamera an das Plugin übergeben.
Die URL für die Vorschau Da ich von der Kamera (bin immer image://camera/preview_1
), ich vermute , ich soll in der Lage einen Verweis auf das bekommen "camera"
Bildanbieter und dann die Verwendung requestImage () Methode um das Bild zu bekommen.
Ich konnte jedoch nicht herausfinden, wie ich an den camera
Bildanbieter gelangen kann. Hier ist der Code:
QString Decoder::decodeImageQML(const QUrl &imgUrl)
{
/*
* @imgUrl: URL to the camera preview. E.g. image://camera/preview_1
*/
QQmlEngine * engine;
QQuickImageProvider *imageProvider = 0;
// FIXME: this does not work, I'm not sure how to get hold of
// the image provider
imageProvider = engine->imageProvider("camera");
QImage image = imageProvider->requestImage(("preview_1", &size, QSize());
return Decoder::decodeImage(image);
}
Wie erhalte ich einen Verweis auf den camera
Bildanbieter?