source: osm/applications/editors/josm/plugins/wmsplugin/webkit-image.cpp@ 12588

Last change on this file since 12588 was 12588, checked in by stoecker, 16 years ago

updated a lot

File size: 1.9 KB
Line 
1/* compile with
2moc webkit-image.cpp >webkit-image.h
3g++ webkit-image.cpp -o webkit-image -lQtCore -lQtWebKit -lQtGui -s -O2
4or under Windows:
5g++ webkit-image.cpp -o webkit-image -lQtCore4 -lQtWebKit4 -lQtGui4 -s O2
6adding the correct directories with -L or -I:
7-I C:\Progra~1\Qt\include -L C:\Progra~1\Qt\lib
8*/
9#include <QtGui/QApplication>
10#include <QtGui/QPainter>
11#include <QtCore/QFile>
12#include <QtCore/QString>
13#include <QtWebKit/QWebPage>
14#include <QtWebKit/QWebFrame>
15
16/* using mingw to set binary mode */
17#ifdef WIN32
18#include <io.h>
19#include <fcntl.h>
20#define BINARYSTDOUT setmode(fileno(stdout), O_BINARY);
21#else
22#define BINARYSTDOUT
23#endif
24
25class Save : public QObject
26{
27Q_OBJECT
28public:
29 Save(QWebPage *p) : page(p) {};
30
31public slots:
32 void loaded(bool ok)
33 {
34 if(ok)
35 {
36 page->setViewportSize(page->mainFrame()->contentsSize());
37 QImage im(page->viewportSize(), QImage::Format_ARGB32);
38 QPainter painter(&im);
39 page->mainFrame()->render(&painter);
40
41 QFile f;
42 BINARYSTDOUT
43 if(f.open(stdout, QIODevice::WriteOnly|QIODevice::Unbuffered))
44 {
45 if(!im.save(&f, "JPEG"))
46 {
47 im.save(&f, "PNG");
48 }
49 }
50 }
51 emit finish();
52 }
53signals:
54 void finish(void);
55
56private:
57 QWebPage * page;
58};
59
60#include "webkit-image.h"
61
62int main(int argc, char **argv)
63{
64 if(argc != 2)
65 return 20;
66 QString url = QString(argv[1]);
67
68 QApplication a(argc, argv);
69 QWebPage * page = new QWebPage();
70 Save * s = new Save(page);
71
72 QObject::connect(page, SIGNAL(loadFinished(bool)), s, SLOT(loaded(bool)));
73 QObject::connect(s, SIGNAL(finish(void)), &a, SLOT(quit()));
74 /* set some useful defaults for a webpage */
75// page->setViewportSize(QSize(1280,1024));
76// page->mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);
77// page->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
78 page->mainFrame()->load (QUrl(url));
79 return a.exec();
80}
Note: See TracBrowser for help on using the repository browser.