[QGIS Commit] r10169 - branches/Version-1_0/src/gui
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Sat Feb 14 08:22:25 EST 2009
Author: timlinux
Date: 2009-02-14 08:22:25 -0500 (Sat, 14 Feb 2009)
New Revision: 10169
Modified:
branches/Version-1_0/src/gui/qgsmapcanvas.cpp
Log:
Fix image export so that it is georeferenced.
Modified: branches/Version-1_0/src/gui/qgsmapcanvas.cpp
===================================================================
--- branches/Version-1_0/src/gui/qgsmapcanvas.cpp 2009-02-14 11:21:34 UTC (rev 10168)
+++ branches/Version-1_0/src/gui/qgsmapcanvas.cpp 2009-02-14 13:22:25 UTC (rev 10169)
@@ -20,6 +20,8 @@
#include <QtGlobal>
#include <QApplication>
#include <QCursor>
+#include <QDir>
+#include <QFile>
#include <QGraphicsItem>
#include <QGraphicsScene>
#include <QGraphicsView>
@@ -32,6 +34,7 @@
#include <QResizeEvent>
#include <QString>
#include <QStringList>
+#include <QTextStream>
#include <QWheelEvent>
#include "qgis.h"
@@ -412,6 +415,31 @@
{
mMap->pixmap().save( theFileName, theFormat.toLocal8Bit().data() );
}
+ //create a world file to go with the image...
+ QgsRectangle myRect = mMapRenderer->extent();
+ QString myHeader;
+ //Pixel XDim
+ myHeader += QString::number( mapUnitsPerPixel() ) + "\r\n";
+ //Rotation on y axis - hard coded
+ myHeader += "0 \r\n";
+ //Rotation on x axis - hard coded
+ myHeader += "0 \r\n";
+ //Pixel YDim - almost always negative - see
+ //http://en.wikipedia.org/wiki/World_file#cite_note-2
+ myHeader += "-" + QString::number( mapUnitsPerPixel() ) + "\r\n";
+ //Origin X (top left corner)
+ myHeader += QString::number( myRect.xMinimum() ) + "\r\n";
+ //Origin Y (top left corner)
+ myHeader += QString::number( myRect.yMaximum() ) + "\r\n";
+ QFileInfo myInfo = QFileInfo( theFileName );
+ QString myWorldFileName = myInfo.absolutePath() + QDir::separator() + myInfo.baseName() + "." + theFormat + "w";
+ QFile myWorldFile( myWorldFileName );
+ if ( !myWorldFile.open( QIODevice::WriteOnly | QIODevice::Text ) )
+ {
+ return;
+ }
+ QTextStream myStream( &myWorldFile );
+ myStream << myHeader;
} // saveAsImage
More information about the QGIS-commit
mailing list