[Interest] QtSVG deprecated
Martin Holmes
mholmes at uvic.ca
Tue Jan 10 18:48:37 CET 2012
This is really useful -- many thanks indeed.
I'm not bothered about getting in the Mac App Store. Seems like a lot of
difficult hoop-jumping just to give Apple a huge percentage of your
income, with the added risk of being booted out unexpectedly for no good
reason. :-)
Cheers,
Martin
On 12-01-10 09:42 AM, Chris Meyer wrote:
> On Tue, Jan 10, 2012 at 5:13 AM, Martin Holmes<mholmes at uvic.ca> wrote:
>> This all seems very disappointing to me. How would you actually use
>> webkit to provide SVG support to QImage?
>
> I extracted this code from my source to convert SVG to QImage using
> QtWebKit. It's untested in this specific form, but should give you the
> idea.
>
> And, again, if you want any chance of being accepted on the Mac App
> Store, you can't include QtWebKit (at least in its current form, which
> uses a library that Apple provides that uses private API calls).
>
> #include<QGraphicsWebView>
>
> QImage makeSvgImage(const QSize&svg_size,
> const QByteArray&svg_byte_array,
> const QString&svg_mime_type)
> {
> QImage image(svg_size);
> image.fill(Qt::transparent);
>
> QPainter painter(&image);
> painter.setRenderHint(QPainter::Antialiasing);
> painter.setRenderHint(QPainter::SmoothPixmapTransform);
> painter.setRenderHint(QPainter::TextAntialiasing);
>
> QRect frame(QPoint(), image.size());
> std::auto_ptr<QGraphicsScene> scene(new QGraphicsScene(frame));
> QGraphicsWebView *web_view = new QGraphicsWebView();
> web_view->setGeometry(frame);
> web_view->setContent(svg_byte_array, svg_mime_type);
> web_view->setOpacity(0.001); // work around bug in web view 4.8
> (draws white background without this)
> scene->addItem(web_view);
>
> scene->render(&painter);
>
> return image;
> }
> .
>
--
Martin Holmes
University of Victoria Humanities Computing and Media Centre
(mholmes at uvic.ca)
More information about the Interest
mailing list