[Date Prev][Date Next][Index][Thread] [SGT Mail Archive] [SGT Main Page]

Re: Creating bitmaps of SGT plots



*************************************************
Message from the sgt mail list.
*************************************************

I have modified SGT to work as part of a server program and generate 
BufferedImages. I hacked the SGT code a little to make this possible. 
Here are my notes. I am sorry they are a little terse. I hope they are 
helpful.

   To allow using the system in a non-GUI way:
     In sgt.Layer.computeScale, I changed
       Rectangle bnds = getBounds();
     to
       Rectangle bnds = pbnds;
   In sgt.Pane, I added
     class field:
       Rectangle bounds;
     to constructor:
       bounds = new Rectangle(0,0, size.width, size.height);
     new method:
       public Rectangle getBounds() {
         return bounds;
       }
   In sgt.dm.Collection:
      change variable "enum" to "en"    to allow use with Java 1.5
   Note about SGT coordinates (at different levels):
     Graph - uses "user" coordinates (e.g., lat and lon)
     Layer - uses "physical" coordinates (doubles, 0,0 at lower left)
     JPane - uses "device" coordinates (ints, 0,0 at upper left)
   To actually use SGT to draw on a Java Image object,
     1) make a BufferedImage
        Get its graphic2D object.
     2) set up SGT
        * Create a JPane object
        * For each thing plotted:
            Create a Graph, placed on a Layer, added to the JPane
     3) call jPane.draw(graphics2D) to actually draw
        the graphs you have set up to the buffered image


Jon Blower wrote:
> *************************************************
> Message from the sgt mail list.
> *************************************************
> 
> Dear all,
> 
> I've been trying to use SGT to create graphics on the fly for a web
> application.  I don't want to use a Java applet: I want to create a bitmap
> picture (jpg, gif or png) on the server, then serve this to the client in a
> web page.  I note that a very similar thread has been started on this
> mailing list by Leonard Scardino, but there have been no replies.
> 
> I have discovered a rather clunky way of achieving this, which involves
> creating the relevant SGT component (e.g. a JPlotLayout) and grabbing its
> graphics using ScreenImage.createImage(JComponent com, String filename)
> (http://www.discoverteenergy.com/files/ScreenImage.java).  This works, but
> it has the disadvantage that the graphics are generated in an X server
> off-screen, then grabbed.  This means that I need to run an X server on my
> web server, which is not ideal for various local reasons.
> 
> It must be possible to draw the graphics in the graphics context of a
> BufferedImage object instead of on a Swing or AWT component.  Can this be
> done?  I'd be happy to hack away at the SGT code if necessary but I'd like
> some pointers on where to start in the code.
> 
> Thanks in advance for any help,
> Jon
> 
> -------------------------------------------------------------- 
> Dr Jon Blower              Tel: +44 118 378 5213 (direct line) 
> Technical Director         Tel: +44 118 378 8741 (ESSC) 
> Reading e-Science Centre   Fax: +44 118 378 6413 
> ESSC                       Email: jdb@mail.nerc-essc.ac.uk 
> University of Reading 
> 3 Earley Gate 
> Reading RG6 6AL, UK 
> -------------------------------------------------------------- 
>  
> 
> 
> 
> *************************************************
> To remove yourself from this mailing list,
> send mail to <epic-majordomo@noaa.gov> with
> "unsubscribe sgt" in the message body.
> ==========


Sincerely,

Bob Simons
Satellite Data Product Manager
Environmental Research Division
NOAA Southwest Fisheries Science Center
1352 Lighthouse Ave
Pacific Grove, CA 93950-2079
(831)658-3205
bob.simons@noaa.gov
<>< <>< <>< <>< <>< <>< <>< <>< <><

*************************************************
To remove yourself from this mailing list,
send mail to <epic-majordomo@noaa.gov> with
"unsubscribe sgt" in the message body.
==========


Privacy Notice, External Links Disclaimer.