Skip to main content

How to dump the a java2d image in file .

4 replies [Last post]
Anonymous

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
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;
/*

*/
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 listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".
[att1.html]

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Andrew Brygin

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 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;
> /*
>
> */
> 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 listserv@java.sun.com and include in the
> body of the message "signoff JAVA2D-INTEREST". For general help, send
> email to listserv@java.sun.com and include in the body of the message
> "help".

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".

Deepak Jain

Hi Andrew,
Thanks for the reply , I am using jdk 1.5.0_06.
Here are the steps I tried
1. First I created the BufferedImage object
BufferedImage buffered_image =
new BufferedImage (600, 300, BufferedImage.TYPE_INT_RGB);
2. Now I create a Graphics2D object fromt the buffer so that I can write it
into this bufferedImage object.
Graphics2D buf_image_graphics = buffered_image.createGraphics ();
3. Now once I have the graphics2d object I call
drawImage() method using it and construct a composite image.
Once done drawing, I need write the constructed composite image in the
buffer object it to the file.
4.Now I create a new file using
File f = new File ("c:\\anImage.gif");
and write BufferedImage object into the file using

try {
ImageIO.write (buffered_image, "gif", f);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

After excuting the above progrm,
A new file c:\\anImage.gif is created but this file is empty?
I dont know where did I go wrong.
Any help is appreciated.
Thanks
Deepak
On 6/13/06, Andrew Brygin wrote:
>
> 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 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;
> > /*
> >
> > */
> > 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 listserv@java.sun.com and include in the
> > body of the message "signoff JAVA2D-INTEREST". For general help, send
> > email to listserv@java.sun.com and include in the body of the message
> > "help".
>

--
Bad boy for life !!!

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".
[att1.html]

Deepak Jain

Hi Andrew,
Bingo it worked, But I need to save the file as jpeg instead of gif. Any
ideas how can I save it as gif file.
Thanks
Deepak

On 6/14/06, Deepak Jain wrote:
>
> Hi Andrew,
> Thanks for the reply , I am using jdk 1.5.0_06.
> Here are the steps I tried
> 1. First I created the BufferedImage object
> BufferedImage buffered_image =
> new BufferedImage (600, 300, BufferedImage.TYPE_INT_RGB);
> 2. Now I create a Graphics2D object fromt the buffer so that I can write
> it into this bufferedImage object.
> Graphics2D buf_image_graphics = buffered_image.createGraphics ();
> 3. Now once I have the graphics2d object I call
> drawImage() method using it and construct a composite image.
> Once done drawing, I need write the constructed composite image in the
> buffer object it to the file.
> 4.Now I create a new file using
> File f = new File ("c:\\anImage.gif");
> and write BufferedImage object into the file using
>
> try {
> ImageIO.write (buffered_image, "gif", f);
> } catch (IOException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
>
> After excuting the above progrm,
> A new file c:\\anImage.gif is created but this file is empty?
> I dont know where did I go wrong.
> Any help is appreciated.
> Thanks
> Deepak
> On 6/13/06, Andrew Brygin wrote:
> >
> > 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 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;
> > > /*
> > >
> > > */
> > > 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 listserv@java.sun.com and include in the
> > > body of the message "signoff JAVA2D-INTEREST". For general help, send
> > > email to listserv@java.sun.com and include in the body of the message
> > > "help".
> >
>
>
>
> --
> Bad boy for life !!!
>

--
Bad boy for life !!!

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".
[att1.html]

Andrew Brygin

Hi Deepak,

To be able write GIF files you must have recent beta of jdk 6.0
You can download it from http://download.java.net/jdk6/binaries/.

If using jdk 6.0 is not option for you then you might consider
using JAI plugins. For more information on JAI have a look at
https://jai-imageio.dev.java.net/.

Thanks,
Andrew

Deepak Jain wrote:
> Hi Andrew,
> Bingo it worked, But I need to save the file as jpeg instead of gif. Any
> ideas how can I save it as gif file.
> Thanks
> Deepak
>
>
> On 6/14/06, *Deepak Jain* > > wrote:
>
> Hi Andrew,
> Thanks for the reply , I am using jdk 1.5.0_06.
> Here are the steps I tried
> 1. First I created the BufferedImage object
> BufferedImage buffered_image =
> new BufferedImage (600, 300, BufferedImage.TYPE_INT_RGB);
> 2. Now I create a Graphics2D object fromt the buffer so that I can
> write it into this bufferedImage object.
> Graphics2D buf_image_graphics = buffered_image.createGraphics ();
> 3. Now once I have the graphics2d object I call
> drawImage() method using it and construct a composite image.
> Once done drawing, I need write the constructed composite image in
> the buffer object it to the file.
> 4.Now I create a new file using
> File f = new File ("c:\\anImage.gif");
> and write BufferedImage object into the file using
>
> try {
> ImageIO.write (buffered_image, "gif", f);
> } catch (IOException e) {
> // TODO Auto-generated catch block
> e.printStackTrace();
> }
>
> After excuting the above progrm,
> A new file c:\\anImage.gif is created but this file is empty?
> I dont know where did I go wrong.
> Any help is appreciated.
> Thanks
> Deepak
> On 6/13/06, *Andrew Brygin* > > wrote:
>
> 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 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;
> > /*
> >
> > */
> > 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 listserv@java.sun.com
> and include in the
> > body of the message "signoff JAVA2D-INTEREST". For general
> help, send
> > email to listserv@java.sun.com
> and include in the body of the message
> > "help".
>
>
>
>
> --
> Bad boy for life !!!
>
>
>
>
> --
> Bad boy for life !!!

===========================================================================
To unsubscribe, send email to listserv@java.sun.com and include in the body
of the message "signoff JAVA2D-INTEREST". For general help, send email to
listserv@java.sun.com and include in the body of the message "help".