Skip to content
Permalink
Browse files
Fix image export so that it is georeferenced.
git-svn-id: http://svn.osgeo.org/qgis/branches/Version-1_0@10169 c8812cc2-4d05-0410-92ff-de0c093fc19c
  • Loading branch information
timlinux committed Feb 14, 2009
1 parent a350ffb commit 495c1cea72cc29b5736e12a3c8a97e4d9eb1e054
Showing with 28 additions and 0 deletions.
  1. +28 −0 src/gui/qgsmapcanvas.cpp
@@ -20,6 +20,8 @@ email : sherman at mrcc.com
#include <QtGlobal>
#include <QApplication>
#include <QCursor>
#include <QDir>
#include <QFile>
#include <QGraphicsItem>
#include <QGraphicsScene>
#include <QGraphicsView>
@@ -32,6 +34,7 @@ email : sherman at mrcc.com
#include <QResizeEvent>
#include <QString>
#include <QStringList>
#include <QTextStream>
#include <QWheelEvent>

#include "qgis.h"
@@ -412,6 +415,31 @@ void QgsMapCanvas::saveAsImage( QString theFileName, QPixmap * theQPixmap, QStri
{
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


0 comments on commit 495c1ce

Please sign in to comment.