2009-08-24 22 views
5

अनुमान लगाया जाएगा कि पहले से ही एक वेबकिट/गीको आधारित कमांड लाइन ऐप है (शायद सर्वर पृष्ठों की गति के रूप में भी कई पृष्ठों को प्रस्तुत करने के लिए काम कर रहा है) जो पहले से ही ऐसा कर रहा है?वेबसाइट का थंबनेल कैसे बनाएं?

उत्तर

7

यहाँ जो एक पूरे वेब पेज के एक screengrab बनाता है एक नमूना क्यूटी 4 कमांड लाइन अनुप्रयोग है - थंबनेल पीढ़ी के लिए अनुकूल करने के लिए आसान ....

#include <QtGui/QApplication> 
#include <QtCore/QCoreApplication> 
#include <QtGui> 
#include <QtWebKit> 
#include <QWebPage> 
#include <QTextStream> 
#include <QSize> 

QWebView *view; 
QString outfile; 

void QWebView::loadFinished(bool ok) 
{ 
     QTextStream out(stdout); 
     if (!ok) { 
       out << "Page loading failed\n"; 
       return; 
     } 
     view->page()->setViewportSize(view->page()->currentFrame()->contentsSize()); 
     QImage *img = new QImage(view->page()->viewportSize(), QImage::Format_ARGB32); 
     QPainter *paint = new QPainter(img); 
     view->page()->currentFrame()->render(paint); 
     paint->end(); 
     if(!img->save(outfile, "png")) 
       out << "Save failure\n"; 
     QApplication::quit(); 
     return; 
} 

int main(int argc, char *argv[]) 
{ 
     QTextStream out(stdout); 
     if(argc < 3) { 
       out << "USAGE: " << argv[0] << " <url> <outfile>\n"; 
       return -1; 
     } 
     outfile = argv[2]; 
     QApplication app(argc, argv); 
     view = new QWebView(); 
     view->load(QUrl(argv[1])); 

     return app.exec(); 
} 

आप एक सर्वर xvfb भी प्रयोग पर इस चला सकते हैं। मूल के लिए this blog post और एक पायथन विकल्प के लिए एक लिंक देखें।

संबंधित मुद्दे