Hi Deepak,

  What version of jdk are you using?

  ImageIO plugin for writing GIF images is available only starting
  from jdk 6.0 b39.
  If you are using older version please try latest jdk 6.0 beta.

  Also note that GIF  image format directly supports only images
  with color palette. You are using TYPE_INT_RGB image that does
  not have palette.
  In such case palette will be constructed automatically but such
  palette might be not ideal especially if original image has more
  than 256 colors.

  If GIF is not strict requirement for you I'd suggest to use PNG.
  It should work fine with your images (without any quality issues)
  and it is available since 1.4.2.

Thanks,
Andrew

Deepak Jain wrote:
Hi,
I am completely lost with Java2d. I have some how managed to construct a
composite image and i dont understand how i did it. Please find the code
below, I was working on one of ur examples.Now i need to dump this
composite image to a temp file so that i can display it on the
web-browser using the <img> tag of html. I tried BufferedImage but I am
not able to understand what  BufferedImage does, read java doc but
failed to understand. Please let me know any solution for this.



import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.RenderingHints;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JApplet;
import javax.swing.JFrame;
/*
<applet code="ACImages" width="600" height="300"></applet>
*/
public class ACimages extends JApplet {

    private String m_backGroundImgName = "emptyEnclosure.gif";

    private Image backImgObj;

    private final int []backImgDimen = {240,150};

    private String dimentionInfo[] =
{"server_1X_2Y","server_1X_2Y","server_1X_2Y","server_1X_2Y"
             ,"server_1X_2Y","server_1X_2Y","server_1X_2Y","server_1X_2Y"};

    private Image eleImgObj[] = new Image[dimentionInfo.length];

    private final int MAX_NUM_SLOTS_XDIRECT = 8;

    public void init() {
        Toolkit tk = getToolkit();
        backImgObj =
tk.getImage(ACimages.class.getResource(m_backGroundImgName));
        try {
            MediaTracker tracker = new MediaTracker(this);
            tracker.addImage(backImgObj, 0);
            tracker.waitForID (0);
        } catch (Exception e) {}

        for(int i = 0; i < dimentionInfo.length; i++) {
            eleImgObj[i] =
tk.getImage(ACimages.class.getResource(dimentionInfo[i] + ".gif"));
            try {
                MediaTracker tracker = new MediaTracker(this);
                tracker.addImage(eleImgObj[i], 0);
                tracker.waitForID(0);
            } catch (Exception e) {}
        }
    }

    public void drawDemo(int w, int h, Graphics2D g2) {

        int iw = 24;
        int ih = 150;
        float xx = 0, yy = 10;
        g2.drawImage(backImgObj, (int) xx, (int) yy, backImgDimen[0],
backImgDimen[1], null);
        for (int i =0; i < eleImgObj.length ; i++) {

         if(i>MAX_NUM_SLOTS_XDIRECT-1) {
          xx = 0;
         }
            xx += iw;
            g2.drawImage(eleImgObj[i], (int) xx, (int) yy, iw, ih, null);
            Image status =getToolkit().getImage(
ACimages.class.getResource("Critical" + ".gif"));
                try {
                    MediaTracker tracker = new MediaTracker(this);
                    tracker.addImage(status, 0);
                    tracker.waitForID(0);
                } catch (Exception e) {}
            g2.drawImage(status, (int) xx+6, (int) yy+6, 13, 13, null);
        }
    }


    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        Dimension d = getSize();
        g2.setBackground(getBackground());
        g2.clearRect(0, 0, d.width, d.height);
        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                            RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setRenderingHint(RenderingHints.KEY_RENDERING,
                            RenderingHints.VALUE_RENDER_QUALITY );
        drawDemo(d.width, d.height, g2);

    }

    private void writeToFile() {
        BufferedImage buffered_image =
         new BufferedImage (600, 300, BufferedImage.TYPE_INT_RGB );
        Graphics2D buf_image_graphics = buffered_image.createGraphics ();
        System.out.println("buffered_image :"+buffered_image);
        Dimension d = getSize();
        buf_image_graphics.setBackground(getBackground());
        buf_image_graphics.clearRect(0, 0, d.width, d.height);
        buf_image_graphics.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                            RenderingHints.VALUE_ANTIALIAS_ON);
        buf_image_graphics.setRenderingHint( RenderingHints.KEY_RENDERING,
                            RenderingHints.VALUE_RENDER_QUALITY);
        drawDemo(d.width, d.height, buf_image_graphics);
        File f = new File ("c:\\anImage.gif");
        try {
   ImageIO.write (buffered_image, "gif", f);
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }

        System.out.println("buffered_image :"+buffered_image);

    }

    public static void main(String argv[]) {
        final ACimages demo = new ACimages();
        demo.init();
        JFrame f = new JFrame("Java 2D(TM) Demo - ACimages");
        f.addWindowListener (new WindowAdapter() {
            public void windowClosing(WindowEvent e) {System.exit(0);}
        });
        f.getContentPane().add("Center", demo);
        f.pack();
        f.setSize(new Dimension(600,300));
        f.show();
        demo.writeToFile();
    }
}


--
Bad boy for life !!!
===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the
body of the message "signoff JAVA2D-INTEREST". For general help, send
email to [EMAIL PROTECTED] and include in the body of the message
"help".

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA2D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to