天天看點

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中儲存的就是整個網頁的圖檔了,

繼續閱讀