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

Last change on this file since 12575 was 12421, checked in by stoecker, 17 years ago

fixed large picture problem

File size: 1.7 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
25#define WIDTH 2000
26
27class Save : public QObject
28{
29Q_OBJECT
30public:
31 Save(QWebPage *p) : page(p) {};
32
33public slots:
34 void loaded(bool ok)
35 {
36 if(ok)
37 {
38 page->setViewportSize(page->mainFrame()->contentsSize());
39 QImage im(page->viewportSize(), QImage::Format_ARGB32);
40 QPainter painter(&im);
41 page->mainFrame()->render(&painter);
42
43 QFile f;
44 BINARYSTDOUT
45 if(f.open(stdout, QIODevice::WriteOnly|QIODevice::Unbuffered))
46 {
47 if(!im.save(&f, "JPEG"))
48 {
49 im.save(&f, "PNG");
50 }
51 }
52 }
53 emit finish();
54 }
55signals:
56 void finish(void);
57
58private:
59 QWebPage * page;
60};
61
62#include "webkit-image.h"
63
64int main(int argc, char **argv)
65{
66 if(argc != 2)
67 return 20;
68 QString url = QString(argv[1]);
69
70 QApplication a(argc, argv);
71 QWebPage * page = new QWebPage();
72 Save * s = new Save(page);
73
74 QObject::connect(page, SIGNAL(loadFinished(bool)), s, SLOT(loaded(bool)));
75 QObject::connect(s, SIGNAL(finish(void)), &a, SLOT(quit()));
76 page->mainFrame()->load (QUrl(url));
77 return a.exec();
78}
Note: See TracBrowser for help on using the repository browser.