diff --git a/src/Render.cpp b/src/Render.cpp index 5f23f8f..9209197 100644 --- a/src/Render.cpp +++ b/src/Render.cpp @@ -13,15 +13,7 @@ void Render::start() { QSize size(width, height); - bool result = page()->render( imagePath, size ); + QString result = page()->render( imagePath, size ); - if (result) { - finish(true); - } else { - const QString failure = QString("Unable to save %1x%2 image to %3"). - arg(width). - arg(height). - arg(imagePath); - finish(false, new ErrorMessage(failure)); - } + finish(true, result); } diff --git a/src/WebPage.cpp b/src/WebPage.cpp index c62686f..b255271 100644 --- a/src/WebPage.cpp +++ b/src/WebPage.cpp @@ -228,7 +228,7 @@ bool WebPage::clickTest(QWebElement element, int absoluteX, int absoluteY) { return res.frame() == element.webFrame(); } -bool WebPage::render(const QString &fileName, const QSize &minimumSize) { +QString WebPage::render(const QString &fileName, const QSize &minimumSize) { QFileInfo fileInfo(fileName); QDir dir; dir.mkpath(fileInfo.absolutePath()); @@ -257,7 +257,14 @@ bool WebPage::render(const QString &fileName, const QSize &minimumSize) { p.end(); this->setViewportSize(viewportSize); - return buffer.save(fileName); + QByteArray byteArray; + QBuffer buffer2(&byteArray); + buffer.save(&buffer2, "PNG"); + QString iconBase64 = QString::fromLatin1(byteArray.toBase64().data()); + + buffer.save(fileName); + + return iconBase64; } QString WebPage::chooseFile(QWebFrame *parentFrame, const QString &suggestedFile) { @@ -372,4 +379,3 @@ void WebPage::setPromptAction(QString action) { void WebPage::setPromptText(QString text) { m_prompt_text = text; } - diff --git a/src/WebPage.h b/src/WebPage.h index 05ea5d0..bb3b61f 100644 --- a/src/WebPage.h +++ b/src/WebPage.h @@ -26,7 +26,7 @@ class WebPage : public QWebPage { void setPromptText(QString action); int getLastStatus(); void setCustomNetworkAccessManager(); - bool render(const QString &fileName, const QSize &minimumSize); + QString render(const QString &fileName, const QSize &minimumSize); virtual bool extension (Extension extension, const ExtensionOption *option=0, ExtensionReturn *output=0); void setSkipImageLoading(bool skip); QVariantList consoleMessages(); @@ -94,4 +94,3 @@ class WebPage : public QWebPage { }; #endif //_WEBPAGE_H -