java graphics2d 画圆_Java 使用Graphics2D 进行画图

java graphics2d 画圆_Java 使用Graphics2D 进行画图importjavax imageio ImageIO importjava awt importjava awt image BufferedImag importjava io File importjava io FileOutputSt publicclassD privatestati C Use

import javax.imageio.ImageIO;

import java.awt.*;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.FileOutputStream;

public class DrawByOpencv {

private static String source = “C:/Users/A/Desktop/desk/111.jpg”;

private static String target = “C:/Users/A/Desktop/desk/222.jpg”;

//画线条

private static void drawLine() throws Exception {

BufferedImage image = ImageIO.read(new File(source));

Graphics2D g2d = (Graphics2D) image.getGraphics();

g2d.setStroke(new BasicStroke(5));//BasicStroke(线条粗细)

g2d.setColor(Color.red);

//drawLine(int x1,int y1,int x2,int y2)

g2d.drawLine(100, 100, 100, 500);//画一条线段

// g2d.drawLine(100, 100, 100, 100);//画一个点。

FileOutputStream out = new FileOutputStream(target);

ImageIO.write(image, “jpeg”, out);

}

//画普通矩形

private static void drawRect() throws Exception {

BufferedImage image = ImageIO.read(new File(source));

Graphics2D g2d = (Graphics2D) image.getGraphics();

g2d.setStroke(new BasicStroke(5));//BasicStroke(线条粗细)

g2d.setColor(Color.red);

g2d.drawRect(200, 200, 300, 200);//画线框drawRect(int x,int y,int width,int height)

FileOutputStream out = new FileOutputStream(target);

ImageIO.write(image, “jpeg”, out);

}

//画圆角矩形

private static void drawRoundRect() throws Exception {

BufferedImage image = ImageIO.read(new File(source));

Graphics2D g2d = (Graphics2D) image.getGraphics();

g2d.setStroke(new BasicStroke(5));//BasicStroke(线条粗细)

g2d.setColor(Color.red);

g2d.drawRoundRect(200, 200, 300, 100, 20, 20);

FileOutputStream out = new FileOutputStream(target);

ImageIO.write(image, “jpeg”, out);

}

//画三维矩形

private static void draw3DRect() throws Exception {

BufferedImage image = ImageIO.read(new File(source));

Graphics2D g2d = (Graphics2D) image.getGraphics();

g2d.setStroke(new BasicStroke(5));//BasicStroke(线条粗细)

g2d.setColor(Color.red);

g2d.draw3DRect(80, 100, 40, 25, true);//画一个线框

g2d.fill3DRect(20, 70, 20, 30, true);//画一个着色块

FileOutputStream out = new FileOutputStream(target);

ImageIO.write(image, “jpeg”, out);

}

//画椭圆形

private static void drawOval() throws Exception {

BufferedImage image = ImageIO.read(new File(source));

Graphics2D g2d = (Graphics2D) image.getGraphics();

g2d.setStroke(new BasicStroke(5));//BasicStroke(线条粗细)

g2d.setColor(Color.red);

g2d.drawOval(10, 10, 60, 120);//画椭圆

g2d.setColor(Color.cyan);

g2d.fillOval(100, 30, 60, 60);//涂圆块

g2d.setColor(Color.magenta);

g2d.fillOval(15, 140, 100, 50);//涂椭圆

FileOutputStream out = new FileOutputStream(target);

ImageIO.write(image, “jpeg”, out);

}

//画圆弧

private static void drawArc() throws Exception {

BufferedImage image = ImageIO.read(new File(source));

Graphics2D g2d = (Graphics2D) image.getGraphics();

g2d.setStroke(new BasicStroke(5));//BasicStroke(线条粗细)

g2d.setColor(Color.red);

g2d.drawArc(10, 40, 90, 50, 0, 180);//画圆弧线

g2d.drawArc(100, 40, 90, 50, 180, 180);//画圆弧线

g2d.setColor(Color.yellow);

g2d.fillArc(10, 100, 40, 40, 0, -270);//填充缺右上角的四分之三的椭圆

g2d.setColor(Color.green);

g2d.fillArc(60, 110, 110, 60, -90, -270);//填充缺左下角的四分之三的椭圆

FileOutputStream out = new FileOutputStream(target);

ImageIO.write(image, “jpeg”, out);

}

//画多边形

private static void drawPolygon() throws Exception {

BufferedImage image = ImageIO.read(new File(source));

Graphics2D g2d = (Graphics2D) image.getGraphics();

g2d.setStroke(new BasicStroke(5));//BasicStroke(线条粗细)

g2d.setColor(Color.red);

int px1[] = {50, 90, 10, 50};//首末点相重,才能画多边形

int py1[] = {10, 50, 50, 10};

int px2[] = {140, 180, 170, 180, 140, 100, 110, 140};

int py2[] = {5, 25, 35, 45, 65, 35, 25, 5};

g2d.setColor(Color.blue);

g2d.fillPolygon(px1, py1, 4);

g2d.setColor(Color.red);

g2d.drawPolygon(px2, py2, 8);

FileOutputStream out = new FileOutputStream(target);

ImageIO.write(image, “jpeg”, out);

}

//擦除矩形块

private static void clearRect() throws Exception {

BufferedImage image = ImageIO.read(new File(source));

Graphics2D g2d = (Graphics2D) image.getGraphics();

g2d.setStroke(new BasicStroke(5));//BasicStroke(线条粗细)

g2d.setColor(Color.red);

g2d.setColor(Color.blue);

g2d.fillOval(50, 50, 100, 100);

g2d.clearRect(70, 70, 40, 55);

FileOutputStream out = new FileOutputStream(target);

ImageIO.write(image, “jpeg”, out);

}

//限定作图显示区域

private static void clipRect() throws Exception {

BufferedImage image = ImageIO.read(new File(source));

Graphics2D g2d = (Graphics2D) image.getGraphics();

g2d.setStroke(new BasicStroke(5));//BasicStroke(线条粗细)

g2d.setColor(Color.red);

g2d.clipRect(0, 0, 100, 50);

g2d.clipRect(50, 25, 100, 50);

FileOutputStream out = new FileOutputStream(target);

ImageIO.write(image, “jpeg”, out);

}

//复制图形

private static void copyArea() throws Exception {

BufferedImage image = ImageIO.read(new File(source));

Graphics2D g2d = (Graphics2D) image.getGraphics();

g2d.setStroke(new BasicStroke(5));//BasicStroke(线条粗细)

g2d.drawRect(10, 10, 60, 90);

g2d.fillRect(90, 10, 60, 90);

g2d.copyArea(40, 50, 60, 70, -20, 80);

g2d.copyArea(110, 50, 60, 60, 10, 80);

FileOutputStream out = new FileOutputStream(target);

ImageIO.write(image, “jpeg”, out);

}

public static void main(String[] args) throws Exception {

drawRoundRect();

}

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/210988.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午11:26
下一篇 2026年3月18日 下午11:26


相关推荐

  • AI的提示词专栏:Prompt 编写的日志分析与关键字聚类

    AI的提示词专栏:Prompt 编写的日志分析与关键字聚类

    2026年3月13日
    4
  • Claude Code 教程第二篇

    Claude Code 教程第二篇

    2026年3月15日
    2
  • kettle python_Kettle入门教程

    kettle python_Kettle入门教程最近做的项目用到了ETL工具Kettle,这个工具相当好用,可以将各种类型数据作为数据流,经过处理后再生成各种类型的数据。正如其名“水壶”,将各个地方的水倒进水壶里,再用水壶倒入不同的容器。不过一来初学乍用,二来对此任务不是很感兴趣,研究的不是很深入,可能是以一种不科学的方法使用的,但观教程,常用的内容似乎也涉及到了,并且Y大说过,要善于总结,于是有了这篇,作为入门说明吧。一、下载与安装官网地址大…

    2022年5月23日
    51
  • 未明确定义列什么原因_将多表数据汇总到一个表

    未明确定义列什么原因_将多表数据汇总到一个表运行环境:Oracle10gsqlplus环境下。 在查询语句中,经常会出现一个错误: SQL基础:ORA-00918:未明确定义列的错误。 当前遇到有两种情况。原因为:当查询语句中,查询的表(数据集)中有相同的字段名,查询字段无法确认是改查那个字段 时,就会报未明确定义列的错误。 第一种情况: 1.单表时: 比如fconsign表中存在三个字段:fcsg_c

    2022年10月5日
    4
  • 【谷粒商城】框架扩充篇(3/4)「建议收藏」

    【谷粒商城】框架扩充篇(3/4)「建议收藏」1.ELASTICSEARCH1、安装elasticsearchdokcer中安装elasticsearch(1)下载ealasticsearch和kibanadockerpullelasticsearch:7.6.2dockerpullkibana:7.6.2(2)配置mkdir-p/mydata/elasticsearch/configmkdir-p/mydata/elasticsearch/dataecho”http.host:0.0.0.0″>

    2022年5月19日
    45
  • 面试官:说说什么是 Java 内存模型(JMM)?

    面试官:说说什么是 Java 内存模型(JMM)?本文禁止转载1.为什么要有内存模型?1.1.硬件内存架构1.2.缓存一致性问题1.3.处理器优化和指令重排序2.并发编程的问题3.Java内存模型3.1.Java运行时内存区域与硬件内存的关系3.2.Java线程与主内存的关系3.3.线程间通信4.有态度的总结在面试中,面试官经常喜欢问:『说说什么是Java内存模型(JMM)?』面试者内心狂喜,这题刚背过:『Java内存主要分为五大块:堆、方法区、虚拟机栈、本地方法栈、PC寄存器,ba.

    2022年6月7日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号