import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class DrawLine {
  static public void main(String args[]) throws Exception {
    try {
      int width = 200, height = 200;

      // TYPE_INT_ARGB specifies the image format: 8-bit RGBA packed
      // into integer pixels
      BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);

      Graphics2D ig2 = bi.createGraphics();

      // set สีให้เป็นสีแดง
      ig2.setColor(Color.RED);
            
      //คำสั่ง drawLine หมายถึง (x จุดเริ่มต้น, y จุดเริ่มต้น, x จุดสุดท้าย, y จุดสุดท้าย)
      ig2.drawLine(40,50,150,160);
     
      // เขียนภาพลงไฟล์
      ImageIO.write(bi, "PNG", new File("c:\\line1.PNG"));
      
     // เนื่องจากตัวอย่างในโปรแกรมนี้เป็นการสร้างภาพ BufferedImage ใหม่ขึ้นมา ผลลัพธ์ที่ได้จึงได้ background สีดำ
     // และเส้นตรงสีแดง ถ้าจะนำภาพที่อ่านเข้ามาจากไฟล์มาเขียนเส้นตรงสีแดงทับ ก็ให้ทำการอ่านภาพ
     // เข้ามาเป็น BufferedImage ตามปกติ แล้วเอา BufferedImage นั้นมาเขียนเส้นตรงสีแดงทับ
     // ก็จะได้ภาพเดิม ที่มีการเขียนเส้นตรงสีแดง เติมลงไป
    } catch (IOException ie) {
      ie.printStackTrace();
    }

  }
}