欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java 2d画图示例分享(用java画图)

程序员文章站 2024-02-27 17:29:33
java 2d api通过扩展抽象窗口工具箱(awt),为java程序提供了二维图像,文本和图形的功能。这个复杂的渲染包支持线形图像,文本和图形,为富用户界面,复杂绘图程序...

java 2d api通过扩展抽象窗口工具箱(awt),为java程序提供了二维图像,文本和图形的功能。这个复杂的渲染包支持线形图像,文本和图形,为富用户界面,复杂绘图程序和图像处理器开发者提供灵活的,功能强大的框架。java 2d对象出现在一个平面中,称为用户坐标系空间,和设备坐标系空间。当对象在屏幕或打印机中渲染时,用户空间坐标系被转换成设备空间坐标系。

复制代码 代码如下:

import java.awt.basicstroke;
import java.awt.color;
import java.awt.graphics2d;
import java.awt.renderinghints;
import java.awt.image.bufferedimage;
import java.io.file;
import java.io.ioexception;
import java.util.iterator;
import java.util.random;

import javax.imageio.*;
import javax.imageio.stream.imageoutputstream;

public class test {
    public static void main(string[] args) throws ioexception {
        int width = 800;
        int height = 800;

        bufferedimage image = new bufferedimage(
                width, height, bufferedimage.type_int_rgb);
        graphics2d g2d = image.creategraphics();
        g2d.setcolor(color.white);
        g2d.fillrect(0, 0, width, height);
        g2d.setrenderinghint(renderinghints.key_antialiasing,
                renderinghints.value_antialias_on);
        random random = new random();
        int wo = 0;
        int ho = 0;
        for (int i = 0; i < 10; i++) {
         int x = random.nextint(width);
         int y = random.nextint(height);
            g2d.setcolor(new color(random.nextint(256),
                    random.nextint(256), random.nextint(256)));
            g2d.setstroke(new basicstroke(1));

            g2d.drawstring("node"+i, x, y);
            g2d.drawarc(x, y, 20, 20, 0, 360);
            if(i!=0){
             g2d.drawline(wo, ho, x, y);
            }
            wo = x;
            ho = y;
        }
        g2d.dispose();
       

        imagewriter writer = null;
        imagetypespecifier type =
            imagetypespecifier.createfromrenderedimage(image);
        iterator iter = imageio.getimagewriters(type, "jpg");
        if (iter.hasnext()) {
            writer = (imagewriter)iter.next();
        }
        if (writer == null) {
            return;
        }
        iioimage iioimage = new iioimage(image, null, null);
        imagewriteparam param = writer.getdefaultwriteparam();

        param.setcompressionmode(imagewriteparam.mode_explicit);
        param.setcompressionquality((float) ((10) / 10.0));
        imageoutputstream outputstream =
          imageio.createimageoutputstream(new file("c:/test.jpg"));
        writer.setoutput(outputstream);
        writer.write(null, iioimage, param);
    }
}