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


猜你喜欢
- 前言关于链表这一块,写了多篇博客,学习了顺序表、单链表、及其一些练习题顺序表:传送门:顺序表单链表:传送门:单链表1
- @Value获取yml和properties配置参数Yml:#定时任务配置 application:
- 记录一下使用IDEA创建servlet并使用Tomcat本地部署的过程。需要安装好的软件首先IDEA社区版不支持Java EE,因此要使用U
- 若将JDK版本升级到最新版本,Java窗体就可以简单实现窗体的透明效果,用户可以通过拉动滑块(Slider)调整窗体透明度,实现窗体不同透明
- 定义:"Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式。好处:Lambda简化了匿名委托的使用
- 选择排序选择排序是一种简单直观的排序算法,它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未
- 本文实例讲述了JavaWeb 网上书店 注册和登陆功能。分享给大家供大家参考,具体如下:工具:Eclipse + Navicat源码地址:h
- Scrollview标题栏滑动渐变仿京东样式(上滑显示下滑渐变消失)/** * @ClassName MyScrollView * @Aut
- Spring读取配置文件Document在XmlBeanDefinitionReader.doLoadBeanDefinitions(Inp
- 一、Java IO流1、概念在Java中,把不同的输入源 / 输出源(如:键盘、文件、网络链接等)抽象的表述为“流”(stream)通过 ”
- 类加载器类加载器作用负责将.class文件(存储的物理文件)加载到内存中类加载器过程加载:通过全类名获取这个类准备用流传输,加载进内存,加载
- 前言本文主要给大家介绍了关于Java中Unsafe类的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧1.Unsaf
- Spring propagation7种事务配置1、简述在声明式的事务处理中,要配置一个切面,其中就用到了propagation,表示打算对
- Unity是不识别Gif格式图的,需要我们使用c#将gif里多帧图转化为Texture2D格式。需要使用System.Drawing.dll
- 先看看效果图:实现思路:监听ListView的滑动,等目的项为列表第一个可见的ItemView时,添加一个一个的布局,产生悬停效果实现代码:
- HttpServletResponse.sendRedirect与RequestDispatcher.forward方法都可以实
- 在APP项目的开发过程中,经常会用到分享图片的功能,有时候还需要根据当前用户信息获取指定的分享图片,比如要求在用户分享图中显示用户名、Uid
- 先来看看效果实现效果模拟水波纹的效果:点击屏幕就有圆环出现,半径从小到大,透明度从大到小(0为透明)实现思路 &nbs
- Apache Shiro官网:https://shiro.apache.org/spring-boot.html.一、依据官网快速搭建Qui
- 调用API设置鼠标位置并模拟鼠标右键让人物走动,全局钩子等using System;using System.Collections.Ge