Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[udig-devel] Re: export png

Alright, forget what I posted before, at least a part,
there is an easier way to get the image, instead of make all the 
renderers draw on a new created image :), there is a method which I
didn't notice (do things fast, do them fast...) , which is:
RenderedImage image = activeMap.getRenderManager().getImage();

And that is it. Rendered with everything on it, I guess that takes
directly the panels graphic.

Very nice... all reduced to really few lines of code...
Ciao
Andrea




On Fri, 17 Aug 2007 09:16:31 +0200 "andrea antonello"
<andrea.antonello@xxxxxxxxx> probably wrote:

> I just noticed that doing it that way the labels are not exported...
> any idea about that?
> 
> Andrea
> 
> On 8/17/07, Andrea Antonello <andrea.antonello@xxxxxxxxx> wrote:
> > For own usage I needed to implement a simple png export. Since
> > JGrass would contain it but some more time is needed to its first
> > release :) and since the code is really few, I paste it below. I
> > remember someone was interested in that, so enjoy :)
> >
> > PS: is there another way to deal with the filedialog or do I have to
> > use the asyncexec?
> >
> > _____________________________________________________________________
> >
> >         public void op(Display display, Object target,
> > IProgressMonitor monitor) throws Exception {
> >
> >                 IMap activeMap = ApplicationGIS.getActiveMap();
> >
> >                 List<IRenderer> renderers =
> > activeMap.getRenderManager().getRenderers();
> >
> >                 int w =
> > activeMap.getRenderManager().getMapDisplay().getWidth(); int h =
> > activeMap.getRenderManager().getMapDisplay().getHeight();
> > BufferedImage bImage = new BufferedImage(w, h,
> > BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = (Graphics2D)
> > bImage.createGraphics();
> >
> >                 for (IRenderer renderer : renderers) {
> >                         renderer.render(g2d, monitor);
> >                 }
> >
> >                 goGo = false;
> >
> >                 Display.getDefault().asyncExec(new Runnable() {
> >
> >                         public void run() {
> >                                 FileDialog fileDialog = new
> > FileDialog(new Shell(Display .getDefault()), SWT.SAVE);
> >                                 fileDialog.setText("Choose the
> > output png file"); path = fileDialog.open();
> >                                 goGo = true;
> >                         }
> >                 });
> >                 while (!goGo) {
> >                         try {
> >                                 Thread.sleep(300);
> >                         } catch (InterruptedException e) {
> >                                 e.printStackTrace();
> >                         }
> >                 }
> >                 goGo = false;
> >
> >                 if (path == null || path.length() < 1) {
> >                         return;
> >                 }
> >
> >                 ImageIO.write(bImage, "png", new File(path));
> >
> >         }
> >
> > _____________________________________________________________________
> >
> >
> > Ciao
> > Andrea
> >


Back to the top