欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java 2d畫圖示例分享(用java畫圖)

 更新時(shí)間:2014年04月02日 09:41:07   作者:  
這篇文章主要介紹了java 2D畫圖示例(用java畫圖),需要的朋友可以參考下

Java 2D API通過(guò)擴(kuò)展抽象窗口工具箱(AWT),為Java程序提供了二維圖像,文本和圖形的功能。這個(gè)復(fù)雜的渲染包支持線形圖像,文本和圖形,為富用戶界面,復(fù)雜繪圖程序和圖像處理器開(kāi)發(fā)者提供靈活的,功能強(qiáng)大的框架。Java 2D對(duì)象出現(xiàn)在一個(gè)平面中,稱為用戶坐標(biāo)系空間,和設(shè)備坐標(biāo)系空間。當(dāng)對(duì)象在屏幕或打印機(jī)中渲染時(shí),用戶空間坐標(biāo)系被轉(zhuǎn)換成設(shè)備空間坐標(biāo)系。

復(fù)制代碼 代碼如下:

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

相關(guān)文章

  • 深入學(xué)習(xí)java位運(yùn)算的基礎(chǔ)知識(shí)

    深入學(xué)習(xí)java位運(yùn)算的基礎(chǔ)知識(shí)

    位運(yùn)算是直接對(duì)整數(shù)在內(nèi)存中的二進(jìn)制位進(jìn)行操作嗎,位運(yùn)算即可以節(jié)約內(nèi)存,同時(shí)使程序速度更快效率更高。文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,下面我們來(lái)一起學(xué)習(xí)下吧
    2019-06-06
  • 簡(jiǎn)單理解Java的抽象類

    簡(jiǎn)單理解Java的抽象類

    這篇文章主要介紹了Java的抽象類,是Java入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-09-09
  • Java線程的調(diào)度與優(yōu)先級(jí)詳解

    Java線程的調(diào)度與優(yōu)先級(jí)詳解

    這篇文章主要為大家詳細(xì)介紹了Java線程的調(diào)度與優(yōu)先級(jí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • SpringBoot?jackson提供對(duì)LocalDate的支持方式

    SpringBoot?jackson提供對(duì)LocalDate的支持方式

    這篇文章主要介紹了SpringBoot?jackson提供對(duì)LocalDate的支持方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 基數(shù)排序簡(jiǎn)介及Java語(yǔ)言實(shí)現(xiàn)

    基數(shù)排序簡(jiǎn)介及Java語(yǔ)言實(shí)現(xiàn)

    這篇文章主要介紹了基數(shù)排序簡(jiǎn)介及Java語(yǔ)言實(shí)現(xiàn),涉及基數(shù)排序的基本思想簡(jiǎn)單介紹和桶排序的分析,以及基數(shù)排序的Java實(shí)現(xiàn),具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-11-11
  • IntelliJ Plugin 開(kāi)發(fā)之添加第三方j(luò)ar的示例代碼

    IntelliJ Plugin 開(kāi)發(fā)之添加第三方j(luò)ar的示例代碼

    這篇文章主要介紹了IntelliJ Plugin 開(kāi)發(fā)之添加第三方j(luò)ar的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Java多態(tài)中動(dòng)態(tài)綁定原理解析

    Java多態(tài)中動(dòng)態(tài)綁定原理解析

    這篇文章主要介紹了Java多態(tài)中動(dòng)態(tài)綁定原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • java easyPOI實(shí)現(xiàn)導(dǎo)出一對(duì)多數(shù)據(jù)

    java easyPOI實(shí)現(xiàn)導(dǎo)出一對(duì)多數(shù)據(jù)

    這篇文章主要為大家詳細(xì)介紹了java如何利用easyPOI實(shí)現(xiàn)導(dǎo)出一對(duì)多數(shù)據(jù),并且可以設(shè)置邊框、字體和字體大小,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • Java集合類的組織結(jié)構(gòu)和繼承、實(shí)現(xiàn)關(guān)系詳解

    Java集合類的組織結(jié)構(gòu)和繼承、實(shí)現(xiàn)關(guān)系詳解

    這篇文章主要介紹了Java集合類的組織結(jié)構(gòu)和繼承、實(shí)現(xiàn)關(guān)系,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • Java利用StampedLock實(shí)現(xiàn)讀寫鎖的方法詳解

    Java利用StampedLock實(shí)現(xiàn)讀寫鎖的方法詳解

    在jdk8以后,java提供了一個(gè)性能更優(yōu)越的讀寫鎖并發(fā)類StampedLock,該類的設(shè)計(jì)初衷是作為一個(gè)內(nèi)部工具類,用于輔助開(kāi)發(fā)其它線程安全組件。本文就來(lái)和大家一起學(xué)習(xí)下StampedLock的功能和使用
    2022-10-10

最新評(píng)論