I am trying to use visad in a web app (Java servlets) to produce
transparent png responses. I build the DisplayImplJ2D in OFFSCREEN mode.
I serialize to png using the javax.imageio.ImageIO routines. For now,
the only data is a UnionSet of points, representing a 'route'.
I cannot get the call to DisplayImplJ2D.getImage to produce a
'transparent' image. I have replaced all calls in VisADCanvas2D which
build BufferedImage of type TYPE_INT_RGB with TYPE_INT_ARGB. Maybe this
could be an options in future releases (??)
When I get the BufferedImage back from the call to
DisplayImplJ2D.getImage(true), it claims to have given me an ARGB type
of BufferedImage (using getType()) but when I view it I get a filled in
If I replace the visad code in my servlet with this, I get a nice
transparent image (via the ImageIO calls):
BufferedImage br = new BufferedImage( 500, 500,
Graphics2D g = br.createGraphics();
g.setBackground( new Color( 0, 0, 0, 0 ) );
g.setColor( Color.RED );
g.clearRect( 0, 0, 500, 500 );
g.drawLine( 100, 100, 200, 200 );
So some Visad code must be doing some other operation(s) to 'ruin' the
transparency of the composed BufferedImage ?? I have looked in
VisADCanvasJ2D somewhat but nothing is jumping out at me.
I confess I am no expert in graphics nor graphics files.
BTW: The underlying approach here is to use Visad as a 'data/map server'
which will produce one 'layer' of data in each image, e.g. a basemap or
z ordering to compose the whole 'picture'. I have an app where the UI
must be a browser, so i cannot go with a jnlp solution. If all goes
well, I will write up the architecture and post here. As you can
imagine, I am stuck w/out transparent images.
Any help gratefully appreciated
To unsubscribe visad, visit: