[SOLVED] can I get an image from an embedded HTML5 Canvas into a QWidget?
-
Hi
I have a QWebView widget and the page which it loads contains an embedded HTML5 canvas element which shows a custom image/scene based on internet server data.
On the Qt side (ie. within a slot on the main form) I'd like to "reach into" the DOM of the embedded webpage and "grab" the image data off the canvas element for further processing. I don't want the whole WebView, just the image data on the particular embedded canvas. Is this possible? If so, how?
Thanks
-
using info from
http://stackoverflow.com/questions/923885/capture-html-canvas-as-gif-jpg-png-pdfalong with
@
QVariant QWebFrame::evaluateJavaScript ( const QString & scriptSource ) [slot]
@you might be able to do something like
@
page()->mainFrame()->evaluateJavaScript("document.getElementsByTagName("canvas")[0].toDataURL("image/png")");
@you'll have to change the script to suit your need
-
I got it to work by doing the following to copy the embedded canvas into a QImage, from there I can do with it what I need.
@
QWebElement el = myWebView->page()->mainFrame()->findFirstElement("#canvas0");QImage image(el.geometry().width(), el.geometry().height(), QImage::Format_ARGB32); QPainter painter(&image); el.render(&painter); painter.end();@