aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/example_9_vCard/xmppClient.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/examples/example_9_vCard/xmppClient.cpp b/examples/example_9_vCard/xmppClient.cpp
index 77b22655..b247b0d0 100644
--- a/examples/example_9_vCard/xmppClient.cpp
+++ b/examples/example_9_vCard/xmppClient.cpp
@@ -32,6 +32,9 @@
#include <QFile>
#include <QDir>
#include <QXmlStreamWriter>
+#include <QImage>
+#include <QBuffer>
+#include <QImageReader>
xmppClient::xmppClient(QObject *parent)
: QXmppClient(parent)
@@ -93,4 +96,16 @@ void xmppClient::vCardReceived(const QXmppVCard& vCard)
file.close();
std::cout<<"example_9_vCard:: vCard written to the file:: " << qPrintable(bareJid) <<std::endl;
}
+
+ QString name("vCards/" + bareJid + ".png");
+ QByteArray photo = vCard.photo();
+ QBuffer buffer;
+ buffer.setData(photo);
+ buffer.open(QIODevice::ReadOnly);
+ QImageReader imageReader(&buffer);
+ QImage image = imageReader.read();
+ if(image.save(name))
+ {
+ std::cout<<"example_9_vCard:: Avatar saved to file" <<std::endl<<std::endl;
+ }
}