| |
/** * 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"); } }
|
|