QtWebkit中如何将网页内容转为图片
如何将webkit中的渲染结果也就是网页画面转换为图片
用抓图软件当然可以,但是如果要使用Qt代码来实现的话原理也很简单,就是让webkit渲染到一张图片上,而不是一个控件上。
代码如下:
QSize size = m_page.mainFrame()->contentsSize(); //这个网页的大小
image = QImage(size, QImage::Format_ARGB32_Premultiplied);
image.fill(Qt::transparent); //不要背景
// render the web page
QPainter p(&image); //关键就在这里,创建painter时不采用QWidget,而是QImage,
p.setRenderHint(QPainter::Antialiasing, true);
p.setRenderHint(QPainter::TextAntialiasing, true);
p.setRenderHint(QPainter::SmoothPixmapTransform, true);
m_page.setViewportSize(m_page.mainFrame()->contentsSize());
m_page.mainFrame()->render(&p);
p.end();
到此QImage中保存的就是整个网页的图片了,
![](http://img.zemanta.com/pixy.gif?x-id=b799e1c4-0196-8b28-a306-fc2bad21f8b1)
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步