3 votos

Llamar a canvas.saveAsImage desde el script en QGis -Qstring problema

Quiero crear un script de procesamiento que guarde el MapCanvas de QGIS exactamente como se ve en la pantalla y luego comprimir el tifw y un PRJ creado. El método existente QgsMapCanvas.saveAsImage() hace exactamente lo que quiero. Guardar en PNG funciona, pero quiero TIF. El tercer argumento toma un QString que se supone que debo proporcionar como QString("TIF").

Sin embargo, no puedo averiguar cómo crear un QString. Parece que las actuales envolturas de Qt han eliminado esta clase. Simplemente enviando una cadena o una cadena unicode ( por ejemplo u "TIF") no funciona.

Tampoco funciona la solución de este hilo: Herramientas de mapa de QGIS y lienzo de mapa--Errores de QString

No tengo ni idea de cómo solucionar este problema sin reescribir la lógica de saveAsImage().

ACTUALIZACIÓN: Conseguí que funcionara pasando None según la solución de gcarillo, sin embargo he pasado a utilizar el código de Martin Dobias en este hilo: http://osgeo-org.1560.x6.nabble.com/How-to-use-QPixmap-argument-in-saveAsImage-td4112041.html . Esta es una solución mejor (aunque más complicada), ya que se puede establecer la resolución de salida.

3voto

Elliott Maynard Puntos 11

Sólo hay que pasar "TIF" como argumento. Pruebe esto desde la consola de QGIS python:

iface.mapCanvas().saveAsImage("/path/to/file.tif",None,"TIF")

Funciona en QGIS 2.6.0

Si estás trabajando en un plugin, también tienes el iface objeto a su disposición.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X