如何將字符以特定屬性保存輸出到圖片文件中
學習JAVA語言不到三個月,可能我比較蠢,一直沒有進步。 
 對於字符輸出到文件,通過參考資料和自己嘗試,我是基本掌握了; 
 但對於圖像輸出到文件,我還是頭一次接觸,不知從何入手,特此向諸位請教。   
 具體來講,我想寫一個能實現如下基本功能的代碼: 
 字符:「字」; 
 字體:細明體; 
 字形:粗體; 
 大小:20; 
 顏色:白色; 
 圖片格式:BMP/JPG/PNG/GIF(其中之一); 
 圖片寬度:40; 
 圖片高度:40; 
 圖片底色:黑色; 
 字符在圖片位置為居中; 
 輸出的圖片是一個完整的文件(可讀寫),也就是說可以用相關的工具來查看和輯,而非以Applet的形式顯示。   
 請精於此類編程的朋友指點,或提供實現此類功能的相關代碼以作參考,謝謝!
------解决方案--------------------写一个给你,写得不怎么样,呵呵,基本达到要求吧。 
 package io;   
 import java.awt.Color; 
 import java.awt.Font; 
 import java.awt.Graphics; 
 import java.awt.image.BufferedImage; 
 import java.io.BufferedOutputStream; 
 import java.io.File; 
 import 
java.io.FileNotFoundException; 
 import java.io.FileOutputStream; 
 import 
java.io.IOException;   
 import com.sun.image.codec.jpeg.ImageFormatException; 
 import com.sun.image.codec.jpeg.JPEGCodec; 
 import com.sun.image.codec.jpeg.JPEGImageEncoder;   
 /** 
  * 构造图片输出 
  */ 
 public class TextImage { 
 	public static void main(String[] args) { 
 		String text =  "字 ";// 要输出的文本 
 		try { 
 			//检查文件夹 
 			File d = new File( "d:\\image "); 
 			if (!d.exists()) { 
 				d.mkdir();// 如果文件夹不存在,就构造一个 
 			} 
 //			 构造文件流 
 			BufferedOutputStream bos = new BufferedOutputStream( 
 					new FileOutputStream( "d:\\image "+File.separator+ "img.jpg "));   
 			int width = 40;//图片宽 
 			int height = 40;//高 
 			BufferedImage image = new BufferedImage(width, height, 
 					BufferedImage.TYPE_INT_RGB);//构造图片缓冲区 
 			Graphics g = image.getGraphics();//获取画板 
 			//设置字体 
 			g.setFont(new Font( "宋体 ",Font.BOLD,12)); 
 			//设置画笔颜色为黑色 
 			g.setColor(Color.black); 
 			//绘制背景 
 			g.fillRect(0, 0, width, height); 
 			//设置画笔颜色为白色 
 			g.setColor(Color.white); 
 			//绘制文本 
 			g.drawString(text, width / 2 - (text.length()*6), height / 2+6); 
 			//释放此图形的上下文并释放它所使用的所有系统资源。 
 			g.dispose(); 
 			// 在输出流中创建一个jpeg编码器 
 			JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(bos); 
 			// 将图片编码成一个jpeg数据流 
 			encoder.encode(image); 
 			// 关闭前输出一张图片 
 			bos.close();   
 		} catch (
FileNotFoundException e) { 
 			// TODO Auto-generated catch block 
 			e.printStackTrace(); 
 		} catch (ImageFormatException e) { 
 			// TODO Auto-generated catch block 
 			e.printStackTrace(); 
 		} catch (
IOException e) { 
 			// TODO Auto-generated catch block 
 			e.printStackTrace(); 
 		}   
 	} 
 }