Java Programming‎ > ‎Graphics 2D‎ > ‎

Memuluskan Sisi Gambar dengan Anti Alias

posted Aug 27, 2011, 5:30 PM by Editor KursusInternet   [ updated Aug 27, 2011, 8:15 PM ]

Pendahuluan

Secara default, gambar yang kita hasilkan biasanya memiliki sisi yang agak "kasar". Jika kita ingin memuluskannya, maka kita gunakan fasilitas Anti Alias

Lihat perbedaan antara gambar lingkaran yang anti alias dan tidak pada gambar berikut di bawah ini. 


Penggunaan Anti Alias

Untuk menggunakan anti alias, kita gunakan method setRenderingHint dari class Graphics / Graphics2D dan parameter konstan dari class RenderingHints sebelum melakukan penggambaran. 

Contoh potongan kodenya  sebagai berikut :

     g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

Contoh Kode Secara Keseluruhan

Berikut adalah contoh code secara keseluruhan berdasarkan artikel Menghasilkan File Gambar / Image.



package com.kursusinternet.graphics;

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

import javax.imageio.ImageIO;

public class GambarCirclePNG {
  public static void main(String[] args) {     
      try {
      BufferedImage img = new BufferedImage(400400, BufferedImage.TYPE_INT_RGB);
      Graphics2D g2d = (Graphics2Dimg.createGraphics();

      Ellipse2D lingkaran;
      double xpusat = 100, ypusat = 100;
      double radius = 80;
      lingkaran  = new Ellipse2D.Double(
          xpusat,ypusat,
          radius, radius
      );
      g2d.setColor(Color.WHITE);  
      g2d.fillRect(00, img.getWidth(), img.getHeight());      
      g2d.setPaint(Color.red);
      g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
      g2d.fill(lingkaran);
      
      File outputfile = new File("c:/kursusinternet.com/lingkaran_merah.png");
      ImageIO.write(img, "png", outputfile);
    catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
}


ċ
GambarCirclePNG.java
(1k)
Editor KursusInternet,
Aug 27, 2011, 5:56 PM
Comments