Hola, así es como yo había pensado hacerlo:

===================================
import time;
from java.awt.image import *;
from javax.imageio import ImageIO;
from java.io import File;
from gvsiglib import *;

view = gvSIG.getActiveDocument();
mctrl = view.getMapControl();
mcon = mctrl.getMapContext();
vp = mctrl.getViewPort();
lyr=mcon.getLayers().getLayer(0);

lyr.getSource().start();

azu0=lyr.getSource().getShape(0);
vp.setExtent(azu0.getBounds2D());

// tamaño de azulejo en la pantalla /(pixels)
w = vp.fromMapDistance(azu0.getBounds2D().getWidth());
h = vp.fromMapDistance(azu0.getBounds2D().getHeight());

// imagen de ese tamaño
bimg = BufferedImage(w,h, BufferedImage.TYPE_INT_RGB);

// en su objeto graf se puede dibujar
graf = bimg.createGraphics();

// desplazamiento del mapa respecto a azulejo
offsetxmap = azu0.getBounds2D().getMinX()-vp.getAdjustedExtent().getMinX();
offsetymap = vp.getAdjustedExtent().getMaxY()-azu0.getBounds2D().getMaxY();

// desplazamiento del mapa respecto a azulejo
offsetxpix = vp.fromMapDistance(offsetxmap);
offsetypix = vp.fromMapDistance(offsetymap);

// se dibuja el mapa en la imagen creada (como un clip)
graf.drawImage(mctrl.getImage(), -offsetxpix, -offsetypix, w, h, None);
// se escribe la imagen en PNG
ImageIO.write(bimg,'png',File('c:/tempo/azulejo.png'))
===================================


pero creo que hay algún error en los cálculos. Tienes que revisarlo, pero creo 
que de esa manera se puede hacer.


Saludos,
Juan Lucas Domínguez Rubio
---
Prodevelop SL, Valencia (España)
Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
http://www.prodevelop.es <http://www.prodevelop.es/>
---

________________________________

De: [email protected] en nombre de Steffen Koch
Enviado el: mar 21/09/2010 20:39
Para: Lista de Desarrolladores de gvSIG
Asunto: Re: [Gvsig_desarrolladores] vista - exportar - imagen - jython


Hola Juan Lucas,

gracias por tu respuesta. Bueno quiero utilizar un fichero de shape (polígono) 
para averiguar los tamanos de la vista. He empezado a programar el scripting de 
python con estas lineas:

#importar gvSIG funciones
from gvsiglib import *

#view, mapcontrol, mapcontext
view = gvSIG.getActiveDocument()
mctrl = view.getMapControl()
mcon = mctrl.getMapContext()

# la primera capa
lyr= mcon.getLayers().getLayer(0)

#el primer polígono
azulejo1 = lyr.getsource().getShape(0)

#las coordenadas
bazulejo1 = azulejo1.getBounds2D()
xmax = bazulejo1.getMaxX()
xmin = bazulejo1.getMinX()
ymax = bazulejo1.getMaxY()
...

ahora no tengo claro, es que pensaba que puedo cortar un sector (polígono) de 
la vista, - pero con el método BufferedImage tengo que definir la altura y la 
anchura de la vista y yo queria solucionar el problema con definir el sector 
con las coordinadas, porque igual son 5 o 37 polígonos/azulejos. Hay otra 
possibilidad de cortar azulejos?

Saludos, Stef








________________________________

        Von: "Juan Lucas Dominguez Rubio" <[email protected]>
        Gesendet: 13.09.2010 13:27:53
        An: "Lista de Desarrolladores de gvSIG" 
<[email protected]>, [email protected]
        Betreff: Re: [Gvsig_desarrolladores] vista - exportar - imagen - jython


        Hola,

        ¿los bordes de esos cuadrículas (azulejos) cómo se definen?
        ¿valdría con que fueran siempre los cuatro cuartos idénticos de la 
vista actual?

        Creo que yo intentaría esto con jython:

        - averiguar el tamaño de la vista en pixels
        - dividir por dos la altura y anchura e instanciar 4 BufferedImage de 
ese tamaño
        - para cada BufferedImage, usa su Graphics y pinta sobre él la parte 
del mapa que te interesa (mediante offsets)
        - finalmente, cada bufferedImage puede exportarse a PNG con ImageIO

        En algún lugar de MapContext o MapControl habrá una copia del mapa 
actual (también un BufferedImage, probablemente)

        Sería más o menos así
        ...
        BufferedImage azulejo2 = new BuferredImage(w/2, h/2);
        Graphics azugra2 = azulejo2.createGraphics();
        azugra2.paintImage(mapa_actual, -w/2, 0);
        ImageIO.export(azulejo2, "png", "c:\\imagenes\\img2.png")
        (o algo así)
        ...

        Al poner -w/2, hacemos un 'clip' de la zona de interés.


        Saludos,

        Juan Lucas Domínguez Rubio
        ---
        Prodevelop SL, Valencia (España)
        Tlf.: 96.351.06.12 -- Fax: 96.351.09.68
        http://www.prodevelop.es <http://www.prodevelop.es/>
        ---

________________________________

        De: [email protected] en nombre de Steffen 
Koch
        Enviado el: jue 02/09/2010 13:16
        Para: [email protected]
        Asunto: [Gvsig_desarrolladores] vista - exportar - imagen - jython


        hola,

        estoy buscando un camino para exportar automaticamente la vista a 
imagenes, igual no funciona con gvsig, no se - es que tengo en mi ejemplo 4 
rectángulos/azulejos que quiero exportar cada uno como imagen, pero 
automaticamente con la ayuda de jython. Tenéis una idea como podría funcionar. 
Gracias por vuestra ayuda.

        Saludos, Stef
        ___________________________________________________________
        Neu: WEB.DE De-Mail - Einfach wie E-Mail, sicher wie ein Brief!
        Jetzt De-Mail-Adresse reservieren: https://produkte.web.de/go/demail02






GRATIS: Spider-Man 1-3 sowie 300 weitere Videos!
Jetzt kostenlose Movie-FLAT freischalten! http://movieflat.web.de 
<http://movieflat.web.de/>
_______________________________________________
gvSIG_desarrolladores mailing list
[email protected]
http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores

Responder a