aspose file tools*
The moose likes Swing / AWT / SWT and the fly likes Text to Image to File Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Java 8 in Action this week in the Java 8 forum!
JavaRanch » Java Forums » Java » Swing / AWT / SWT
Bookmark "Text to Image to File" Watch "Text to Image to File" New topic

Text to Image to File

Saidul Islam

Joined: Dec 05, 2000
Posts: 18
Sorry guys if I am posting it in the wrong forum.
I am trying to convert a text value (String) to an image (.jpg). My program seems to be working somewhat. It's creating a blank (whiite background) .jpg file, without my string value "Saidul Islam". I can open the file in any image editor. it just doesn't have the string I am trying to print.
And the strange part is that the program is not even terminating.
Here is the output I get when I run it
C:\test>java Text2Image
gets here
remove notify
it's of course printing the last line but the program is not terminating. I have been working on this since yesterday. and my brain is not functioning anymore on this. So I ask for your help.
what am I doing wrong and how do I get this working.
Here is my program-
import java.awt.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;

public class Text2Image {
public static void main(String args[]) {
Frame myFrame = null;
Graphics2D myGraphics = null;
try {
myFrame = new Frame();
BufferedImage buffImage = new BufferedImage(400, 200, BufferedImage.TYPE_INT_RGB);
BufferedImage buff2Image = new BufferedImage(400, 200, BufferedImage.TYPE_INT_RGB);
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("text.jpg"));
Image offImage = myFrame.createImage(400, 200);
//myGraphics = buffImage.getGraphics();
myGraphics = buffImage.createGraphics();
myGraphics.setFont(new Font("Serif", Font.ITALIC, 48));
myGraphics.drawString("Saidul Islam", 10, 50);
myGraphics.drawImage(offImage, 0, 0, myFrame);
buffImage.createGraphics().drawImage(buffImage, 0, 0, myFrame);
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos);

//JpegEncoder jpg = new JpegEncoder(offImage, 80, bos);

System.out.println("gets here");

catch (Exception e) {
finally {
if (myGraphics != null) {
if (myFrame != null) {
System.out.println("remove notify");
} //end of main method
} //end of Text2Image class

Thanks for your help!

Nathan Pruett

Joined: Oct 18, 2000
Posts: 4121


First, let me say... Really awesome program!

I think I have fixed the problems you were having...

this line was causing the image you had created so far to be overwritten with a blank image of the same size...

I assume that you were trying to assign the image to the frame after you had created it... I couldn't find a direct way to paint a Graphics object or a BufferedImage object, so I simply saved the image first and then displayed it... The code I added isn't the best... there is no double buffering being done to keep the image from being erased in screen redraws, but this could be easily fixed by making a special class to display the image... I just used a regular canvas...

As far as the reason behind why your program would not exit... I think it is because you must specifically call System.exit if you are using any GUI elements... I think Java launches some kind of GUI manager that creates another thread that keeps all the GUI elements alive... so you have to specifically call System.exit...

On to the code...

[This message has been edited by Nathan Pruett (edited May 31, 2001).]

Write once, run anywhere, because there's nowhere to hide! - /. A.C.
Saidul Islam

Joined: Dec 05, 2000
Posts: 18
Thanks Nate. It worked fine. And yes it looks like I have to use System.exit(0) to break out of the program.
I agree. Here's the link:
subject: Text to Image to File
Similar Threads
Text to Image to File
How to Export Images as GIF, JPG?
Text to Image to file
Getting Bitmap from Canvas and converting it into image file format