Java Programming‎ > ‎Graphics 2D‎ > ‎

Merubah Ukuran Objek Image / Gambar

posted Sep 18, 2011, 6:07 PM by Editor KursusInternet   [ updated Sep 18, 2011, 6:30 PM ]

Pendahuluan

Pada artikel sebelumnya, kita sudah mengetahui bagaimana membaca file gambar dan menggabungkan pada hasil render gambar kita. Method drawImage() pada class Graphics memiliki parameter tambahan untuk menggambar dengan ukuran yang kita inginkan.

Method drawImage yang kita gunakan berdasarkan dokumentasi class Graphics / Graphics2D adalah sebagai berikut :
public abstract boolean drawImage(Image img,
                                  int x,
                                  int y,
                                  int width,
                                  int height,
                                  Color bgcolor,
                                  ImageObserver observer)
dimana x, y adalah lokasi dari gambar yang ingin kita tempatkan, sedangkan width dan height adalah ukuran lebar dan tinggi yang kita inginkan.

Bagian berikut adalah contoh lengkap kode Java menggunakan method tersebut dan screenshot hasil eksekusinya. Pada bagian akhir artikel ini Anda juga dapat men-download file gambar yang digunakan.

Contoh Kode Java Lengkap

package com.kursusinternet.graphics;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.RadialGradientPaint;
import java.awt.RenderingHints;
import java.awt.MultipleGradientPaint.CycleMethod;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class MerubahUkuranGambar extends JPanel {

  private static final long serialVersionUID = 1L;

  public void gambar(Graphics g)
  {

    float[] fraksi = {0.0f0.4f0.8f1.0f};
    Color[] colors = {
        Color.decode("#ffff6d")
        Color.decode("#ffff24")
        Color.decode("#ff8400"),
        Color.decode("#da2c00")
    };
    RadialGradientPaint gradialPaint =
      new RadialGradientPaint(
          150.0f150.0f,
          200.0f
          150.0f0.0f,
          fraksi, colors,
          CycleMethod.NO_CYCLE);

    Graphics2D g2d = (Graphics2Dg;
    int x[] {50200350};
    int y[] {32050320};
    g2d.setPaint(gradialPaint);
    g2d.fill(new Polygon(x,y,x.length));
    BufferedImage logoImage;
    try {
      int lebarBaru = 50;
      int tinggiBaru = 50;
      
      logoImage = ImageIO.read(
          new File("c:/kursusinternet.com/star_marker.png")
      );
      int posisiX = (this.getWidth()-lebarBaru)/2;
      int posisiY = (this.getHeight()-tinggiBaru)/2;
      g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
      g2d.drawImage(logoImage, posisiX, posisiY, lebarBaru, tinggiBaru, null, null);
    catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }

  public void paintComponent(Graphics g) {
    clear(g);
    gambar(g);
  }

  protected void clear(Graphics g) {
    super.paintComponent(g);
  }

  public static void main(String[] args) {
    MerubahUkuranGambar panelGambar = new MerubahUkuranGambar();
    JFrame frameGambar = new JFrame("Merubah Ukuran Gambar Marker");
    frameGambar.setSize(400400);
    panelGambar.setBackground(Color.white);
    frameGambar.setContentPane(panelGambar);
    frameGambar.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frameGambar.setVisible(true);
  }
}

Hasil Eksekusi


Baca Juga 

ą
Editor KursusInternet,
Sep 18, 2011, 6:30 PM
Comments