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

时间:2023-07-25 22:03:52 

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);
    }
}

标签:java,2d,画图
0
投稿

猜你喜欢

  • MTK Android平台开发流程

    2023-06-23 08:59:11
  • C#实现简单俄罗斯方块

    2023-06-18 07:18:36
  • java实现简单石头剪刀布游戏

    2023-07-20 05:31:37
  • Android Flutter实现搜索的三种方式详解

    2023-07-10 18:00:49
  • Android开发组件flutter的20个常用技巧示例总结

    2023-06-19 17:25:23
  • Java如何实现自定义异常类

    2023-06-21 23:44:01
  • 学习使用Material Design控件(一)

    2023-07-27 13:14:06
  • C++实现LeetCode(205.同构字符串)

    2023-06-21 04:06:54
  • Android基于SoftReference缓存图片的方法

    2023-07-13 00:53:21
  • Java 信号量Semaphore的实现

    2023-06-19 11:00:34
  • 简单实现安卓里百度地图持续定位

    2023-07-29 07:59:22
  • c#取得控制台应用程序根目录

    2023-06-16 14:25:44
  • Android学习笔记-保存数据到SQL数据库中(Saving Data in SQL Databases)

    2023-07-28 08:32:20
  • IOS与网页JS交互详解及实例

    2023-07-08 11:58:20
  • Android实现腾讯新闻的新闻类别导航效果

    2023-07-29 04:17:46
  • VS2019配置OpenCV时找不到Microsoft.Cpp.x64.user的解决方法

    2023-07-01 01:57:36
  • java 动态增加定时任务示例

    2023-07-29 06:56:00
  • TextView实现跑马灯效果 就这么简单!

    2023-06-25 18:42:24
  • Java中对于双属性枚举的使用案例

    2023-07-20 15:00:09
  • 通过Docker启动Solace并在Spring Boot通过JMS整合Solace的操作方法

    2023-07-11 09:52:28
  • asp之家 软件编程 m.aspxhome.com