2011-05-07 48 views
3

有没有什么方法可以用C++ CGI来捕捉网页的图像?我一直在寻找最高和最低的,尽管我已经发现了从Perl到C#的所有实现中的大量实现,但却无法在C++中找到任何实现。用C++获取网站缩略图快照

这个想法是访问一个网站的用户能够指定一个URL。然后该脚本将拍摄URL的网站图片,然后显示将其加载到我正在构建的C++ CGI网站。

任何帮助,将不胜感激!

谢谢!

例在Perl: Webthumb

+1

C#实现使用哪些代码?几乎所有可以用C#编写的东西都可以轻松移植到Win32 C++应用程序中。 – 2011-05-07 09:57:22

+0

如在其中参数是一个URL的方法? – Bart 2011-05-07 09:58:17

+0

@Bart - aye,如一个方法,将一个URL作为参数,并拍摄该URL的图片,并将其保存到一个文件夹(或直接显示在另一个网站上)。基本上,我正在用C++开发一个CGI网站,作为要求的一部分,我需要能够显示网站的webthumb。虽然没有人会在C++中写出一个CGI网站,但是它的源代码有点短:) – 2011-05-07 10:07:45

回答

4

你需要渲染网页,以创建一个快照。要在C++中呈现页面,您需要包含浏览器引擎。你可以使用Qt(一个用于C++的工具包)轻松实现。 这是从Qt的文档中获取的,并且您只需显示一个网页即可。

QWebView *view = new QWebView(ui->centralWidget); 
view->load(QUrl("http://qt.nokia.com/")); 
view->show(); 

视图对象有一个loadFinished信号。你可以将一些代码连接到这个信号。当页面呈现时,您按照here的描述拍摄快照。 它归结为:

QPixmap::grabWindow(mainwindow->winId()) 

当您得到的截图,你可以从你的CGI和你做在标准输出上返回的字节数。