/**
* jerugraphics v 1.0
*
* 看到一些动态生成图象的例子都是servlet完成的,
* 而且程序很长,觉得不是无论从实用性还是可读性来说都不是太好。
* 这里给了段代码,命令行生成图象文件。这样是不是简单易用些呢?
*
* 创建一个 bufferedimage 对象,将你的“画”放到这个缓冲里,
* 再打开一个文件,将图像流编码后输入这个文件,这样就有一个
* jpg文件出现了,试试吧。。。
*
* mender :
* jeru liu
* homepage :
* http://javaren.126.com
* email: jeru@163.net
*
* 这仅仅是一个范例程序,没什么实用,却极具参考价值。
*
*/
import java.io.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;
public class jerugraphics {
bufferedimage image;
// 创建 jpg 文件到指定路径下
public void createjpg(string path) {
try {
fileoutputstream fos = new fileoutputstream(path);
bufferedoutputstream bos = new bufferedoutputstream(fos);
jpegimageencoder encoder = jpegcodec.createjpegencoder(bos);
encoder.encode(image);
bos.close();
} catch(filenotfoundexception fnfe) {
system.out.println(fnfe);
} catch(ioexception ioe) {
system.out.println(ioe);
}
}
public static void main(string[] args) {
int width=400, height=200;
int xlength=300, ylength=150;
int count=5;
vector data=new vector();
data.addelement(new integer(100));
data.addelement(new integer(120));
data.addelement(new integer(150));
data.addelement(new integer(40));
data.addelement(new integer(5));
jerugraphics jg = new jerugraphics();
jg.image = new bufferedimage(width, height, bufferedimage.type_int_rgb);
graphics g = jg.image.getgraphics();
// 画坐标
g.setcolor(color.white);
g.fillrect(0, 0, width, height);
g.setcolor(color.blue);
g.drawline(10,height-10,10,height-10-ylength);
g.drawline(10,height-10,10+xlength,height-10);
// 连线
int yto;
int yfrom = ((integer)(data.elementat(0))).intvalue();
for (int i=1; i<count; i++) {
yto=((integer)(data.elementat(i))).intvalue();
g.drawline(10+i*xlength/count,height-10,10+i*xlength/count,height-15);
g.drawline(10+(i-1)*xlength/count,yfrom,10+i*xlength/count,yto);
yfrom=yto;
}
jg.createjpg("d:\\aaa.jpg");
}
}
