Java 2d drawing sample share of drawing in Java

  • 2020-04-01 03:15:35
  • OfStack

The Java 2D API provides 2D image, text, and graphics capabilities for Java programs by extending the abstract window toolkit (AWT). This complex rendering package supports line images, text, and graphics, providing a flexible, powerful framework for developers of rich user interfaces, complex drawing programs, and image processors. Java 2D objects appear in a plane called the user coordinate space and the device coordinate space. When an object is rendered in a screen or printer, the user space coordinate system is converted to the device space coordinate system.


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


Related articles: