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

 更新时间:2014年04月02日 09:41:07   作者:  
这篇文章主要介绍了java 2D画图示例(用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);
    }
}

相关文章

  • Mybatis 中的insertOrUpdate操作

    Mybatis 中的insertOrUpdate操作

    这篇文章主要介绍了Mybatis 中的insertOrUpdate操作,代码简单易懂,非常不错需要的的朋友参考下
    2016-12-12
  • Java实现多项式乘法代码实例

    Java实现多项式乘法代码实例

    今天小编就为大家分享一篇关于Java实现多项式乘法代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • 图解程序员必须掌握的Java常用8大排序算法

    图解程序员必须掌握的Java常用8大排序算法

    本文以图片与文字结合的方式讲解了程序员必须掌握的Java常用8大排序算法:插入排序、冒泡排序、选择排序、希尔排序 、快速排序、归并排序、堆排序和LST基数排序,需要的朋友可以参考下
    2015-07-07
  • Java中try-catch的使用及注意细节

    Java中try-catch的使用及注意细节

    现在有很多的语言都支持try-catch,比如常见的就是c++,java等,这篇文章主要给大家介绍了关于Java中try-catch的使用及注意细节的相关资料,文中通过图文以及实例代码介绍的非常详细,需要的朋友可以参考下
    2023-06-06
  • Java实现SM3加密和验证的示例代码

    Java实现SM3加密和验证的示例代码

    在商用密码体系中,SM3主要用于数字签名及验证、消息认证码生成及验证、随机数生成等,其算法公开,本文给大家详细介绍了使用Java实现SM3加密和验证,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2023-12-12
  • Elasticsearch term 查询之精确值搜索功能实现

    Elasticsearch term 查询之精确值搜索功能实现

    term查询是Elasticsearch中用于精确值搜索的一种基本方式,通过了解 term 查询的工作原理和使用方法,你可以更好地利用 Elasticsearch 进行结构化数据的搜索和分析,本文将详细介绍 term 查询的工作原理、使用场景以及如何在 Elasticsearch 中应用它,感兴趣的朋友一起看看吧
    2024-06-06
  • Java socket通信模拟QQ实现多人聊天室

    Java socket通信模拟QQ实现多人聊天室

    Socket在Java实战网络通信编程应用中有非常重要的作用,你想要跟别人联系都得通过socket占据端口来实现,掌握Socket技术不仅在聊天应用程序中需要用到(比如QQ什么的都都是用socket来写的),而且对于学习 Asp.net 也非常有帮助
    2022-07-07
  • 2019年最新Java学习路线图

    2019年最新Java学习路线图

    不管你是不懂电脑的小白,还是已经步入开发的大牛,这套路线路绝对不容错过,路线图的宗旨就是分享,专业,便利,让喜爱Java的人,都能平等的学习,感兴趣的同学可以了解一下
    2019-03-03
  • Java实现将每日新闻添加到自己博客中

    Java实现将每日新闻添加到自己博客中

    这篇文章主要为大家详细介绍了Java如何实现将每日新闻添加到自己博客中并发送到微信群中,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-12-12
  • 详解Spring中Bean后置处理器(BeanPostProcessor)的使用

    详解Spring中Bean后置处理器(BeanPostProcessor)的使用

    BeanPostProcessor 接口也被称为Bean后置处理器,通过该接口可以自定义调用初始化前后执行的操作方法。本文将详细讲讲它的使用,需要的可以参考一下
    2022-06-06

最新评论