[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