•     JDK :OpenJDK-11
  •      OS :CentOS 7.6.1810
  •      IDE :Eclipse 2019‑03
  • typesetting :Markdown

code

  1. package per.jizuiku.gui;
  2. import java.awt.BasicStroke;
  3. import java.awt.Color;
  4. import java.awt.Graphics2D;
  5. import java.awt.image.BufferedImage;
  6. import java.io.FileNotFoundException;
  7. import java.io.FileOutputStream;
  8. import java.io.IOException;
  9. import javax.imageio.ImageIO;
  10. /**
  11. * @author 给最苦
  12. * @date 2019/06/30
  13. * @blog www.cnblogs.com/jizuiku
  14. */
  15. public class Demo {
  16. /**
  17. * @param args
  18. */
  19. public static void main(String[] args) {
  20. try {
  21. getImage();
  22. } catch (IOException e) {
  23. // TODO Auto-generated catch block
  24. e.printStackTrace();
  25. }
  26. }
  27. /**
  28. *
  29. * @throws FileNotFoundException
  30. * @throws IOException
  31. */
  32. public static void getImage() throws FileNotFoundException, IOException {
  33. // 得到图片缓冲区
  34. int width = 100;
  35. int height = 50;
  36. int imageType = BufferedImage.TYPE_INT_BGR;
  37. BufferedImage myImage = new BufferedImage(width, height, imageType);
  38. // 得到画笔
  39. Graphics2D pen = (Graphics2D)myImage.getGraphics();
  40. // 设置笔的颜色,即背景色
  41. pen.setColor(Color.WHITE);
  42. // 画出一个矩形
  43. // 坐标x 坐标y 宽度100 长度50
  44. pen.fillRect(0, 0, 100, 50);
  45. // 字的颜色 和 背景的颜色 要不同的
  46. pen.setColor(Color.blue);
  47. // 划线
  48. // 点动成线,线动成面,面动成体
  49. // 两点确定一条直线
  50. int xStart = 5;
  51. int yStart = 15;
  52. int xEnd = 60;
  53. int yEnd = 30;
  54. // 设置线的宽度
  55. float lineWidth = 7F;
  56. pen.setStroke(new BasicStroke(lineWidth));
  57. pen.drawLine(xStart, yStart, xEnd, yEnd);
  58. ImageIO.write(myImage, "JPEG", new FileOutputStream("line" + ".jpg"));
  59. }
  60. }

result

sourceCode

  1. /**
  2. * Draws a line, using the current color, between the points
  3. * <code>(x1,&nbsp;y1)</code> and <code>(x2,&nbsp;y2)</code>
  4. * in this graphics context's coordinate system.
  5. * @param x1 the first point's <i>x</i> coordinate.
  6. * @param y1 the first point's <i>y</i> coordinate.
  7. * @param x2 the second point's <i>x</i> coordinate.
  8. * @param y2 the second point's <i>y</i> coordinate.
  9. */
  10. public abstract void drawLine(int x1, int y1, int x2, int y2);

resource

  • [ JDK ] openjdk.java.net
  • [ doc - 参考 ] docs.oracle.com/en/java/javase/11
  • [ 规范 - 推荐 ] yq.aliyun.com/articles/69327
  • [ 规范 - 推荐 ] google.github.io/styleguide
  • [ 源码 ] hg.openjdk.java.net
  • [ OS ] www.centos.org
  • [ IDE ] www.eclipse.org/downloads/packages
  • [ 平台 ] www.cnblogs.com


感谢帮助过 给最苦 的人们。

Java、Groovy和Scala等基于JVM的语言,优秀,值得学习。

规范的命名和代码格式等,有助于沟通和理解。

JVM的配置、监控与优化,比较实用,值得学习。

Java基础 awt Graphics2D 生成矩形图片并向其中画一条直线的更多相关文章

  1. Java基础 awt Graphics2D 生成矩形图片并向内写入字符串

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

  2. Java基础 awt Font 四种字体样式

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

  3. javaweb基础(9)_Servlet生成验证码图片

    一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:

  4. java中 awt Graphics2D

    Graphics2D ,Graphics 类,提供了对几何形状.坐标转换.颜色管理和文本布局更为复杂的控制.它是用于在 Java(tm) 平台上呈现二维形状.文本和图像的基础类.验证码生成可以用到此类 ...

  5. Java基础---AWT

    流式布局FlowLayout package net.zyz; import java.awt.Button; import java.awt.FlowLayout; import java.awt. ...

  6. java基础---->使用Itext生成数据库文档

    这里简单的介绍一下使用Itext生成数据库表的文档.于是我们领教了世界是何等凶顽,同时又得知世界也可以变得温存和美好. 生成数据库的文档 一.maven项目需要引入的jar依赖 <depende ...

  7. Java基础之随机生成数字和字母

    字母与数字的ASCII码 目 前计算机中用得最广泛的 字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information I ...

  8. Java Web用Freemarker生成带图片的Word文档

    步骤一:模板制作 用world2003做一个导出模板,如果有图片则加入一张图片占位,将world另存为xml,将xml中需要导出的内容用Freemarker标签表示,最后另存为.ftl结尾的模板: 步 ...

  9. Java基础 awt Frame 设置窗体的背景颜色

        JDK :OpenJDK-11      OS :CentOS 7.6.1810      IDE :Eclipse 2019‑03 typesetting :Markdown   code ...

随机推荐

  1. vue.js生成纵向拓扑图

    1.前端代码 <link href="https://magicbox.bk.tencent.com/static_api/v3/assets/bootstrap-3.3.4/css/ ...

  2. xadmin引入drf-yasg生成Swagger API文档

    一.安装drf-yasg: 由于django-rest-swagger已经废弃了 所以引入了drf-yasg pip install drf-yasg 安装install drf-yasg库 http ...

  3. 2019年杭电多校第三场 1008题Game(HDU6610+带修改莫队+Nim博弈)

    题目链接 传送门 题意 给你\(n\)堆石子,每堆有\(a_i\)堆石子,\(q\)次操作: 在\([L,R]\)内有多少个子区间使得\(Alice\)(先手)在\(Nim\)博弈中获胜: 交换\(a ...

  4. 洛谷P4556 雨天的尾巴(线段树合并)

    洛谷P4556 雨天的尾巴 题目链接 题解: 因为一个点可能存放多种物品,直接开二维数组进行统计时间.空间复杂度都不能承受.因为每一个点所拥有的物品只与其子树中的点有关,所以可以考虑对每一个点来建立一 ...

  5. 锤子手机做appium自动化测试时,运行脚本总是弹出警告框的问题

    当运行脚本的时候,总是提示若干个如上提示框,必须点击同意才能进行下一步:解决方案: 在设置,全局高级设置,开发者选项中打开“总是允许USB安装应用”即可解决:

  6. Visual Studio 调试 ---- 系列文章

    调试是软件开发过程中非常重要的一个部分,它具挑战性,但是也有一定的方法和技巧. Visual Studio 调试程序有助于你观察程序的运行时行为并发现问题. 该调试器可用于所有 Visual Stud ...

  7. sublme text 3 快捷键

    1. 插件 codeFormatter 格式化插件 json格式化MAC快捷键  control + option + F

  8. js 复选框回显

    <div class="control-group"> <label class="control-label">客户状态:</l ...

  9. Caching POST-post是否能缓存

    https://www.mnot.net/blog/2012/09/24/caching_POST One of the changes in Apple’s release of iOS6 last ...

  10. NSData、数据结构与数据转换

    数据结构公式:Data_Structure=(D,R): 只要数据元素与数据(组织关系)能够保持:同一个数据(结构)可以在各种存贮形式间进行转换. 字节流或字符串是所有转化的中间节点(中转站).相当于 ...