#pragma once #include #include #include #include #include #include #include #ifdef __ANDROID__ # include # include #endif // __ANDROID__ struct AndroidImagePicker : QObject { Q_OBJECT public slots: static void openPicker() { qDebug() << "Starting image picker intent"; #ifdef __ANDROID__ QtAndroid::androidActivity().callMethod( "openImagePicker", "()V" ); #endif // __ANDROID__ } // Used to convert a given image path into a png base64 string static QString imageToBase64 (QString const& path) { // Get local path from uri QUrl url (path); QString localPath = url.toLocalFile(); // Read the image QImageReader reader; reader.setFileName(localPath); QImage image = reader.read(); // Transform image into PNG format QByteArray ba; QBuffer buffer( &ba ); buffer.open( QIODevice::WriteOnly ); image.save( &buffer, "PNG" ); // Get Based 64 image string QString encoded = QString(ba.toBase64()); qDebug() << "imageToBase64() " ; return encoded; } };