Cara Membuat Transparency and Clipping Menggunakan Java Netbeans Universitas Pamulang
Packages
Kelas-kelas utama pada Java 2D diorganisir dalam packages berikut yaitu :- java.awt
- java.awt.geom
- java.awt.font
- java.awt.color
- java.awt.image
- java.awt.image.renderable
- java.awt.print
Java.awt
AWT (Abstract Window Toolkit), package yang terdiri dari kelas-kelas untuk mendukung pemrograman GUI, termasuk di dalamnya kelas-kelas untuk pemrograman grafik 2D.
Berikut adalah kelas-kelas yang terkait dengan Java 2D :
- AlphaComposite
- BasicStroke
- Color
- Composite
- CompositeContext
- Font
- GradientPaint
- Graphics2D
- GraphicsConfiguration
- GraphicsDevice
- GraphicsEnvironment
- Paint
- PaintContext
- Rectangle
- Shape
- Stroke
- TexturePaint
- Transparency
AlphaComposite
Kelas AlphaComposite membungkus metode (mengenkapsulasi metode-metode untuk menggabungkan dan menampilkan objek-objek grafik yang overlap.
AlphaComposite juga dapat memiliki nilai alpha yang menunjukkan derajat transparansi dari objek di mana nilai 0.0 artinya 100% transparan, sedangkan 1.0 tidak transparan.
Contoh Penggunaan AlphaComposite :
//import package yang diperlukan
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.swing.*;
/**
*
* @author Axio
*/
public class GrafikCanvas extends JPanel {
public GrafikCanvas () {
//menambahkan Canvas
this.setPreferredSize (new Dimension(700, 500));
this.setBackground(Color.WHITE);
}
public void paintComponent(Graphics g) {
//paint component dengan default method
super.paintComponent (g);
Graphics2D g2 = (Graphics2D)g;
g2.setColor(Color.BLUE);
g2.drawString("DESTINATION(Rectangle)", 40, 20);
g2.setColor(Color.RED);
g2.drawString("SOURCE(Circle)", 300, 20);
g2.setColor(Color.BLACK);
drawComposite(g2, 0.5f);
}
public void drawComposite(Graphics2D g2,float alpha) {
//jenis-jenis alpha composite
int[] alphaComp = {
AlphaComposite.SRC, AlphaComposite.DST_IN,
AlphaComposite.DST_OUT, AlphaComposite.DST_OVER,
AlphaComposite.SRC_IN, AlphaComposite.SRC_OVER,
AlphaComposite.SRC_OUT, AlphaComposite.CLEAR
};
String [] caption = { "SRC","DST_IN","DST_OUT","DST_OVER",
"SRC_IN","SRC_OVER", "SRC_OUT","CLEAR" };
//ambil objek alpha composite
int x, y;
x = y = 40;
AlphaComposite ac;
AlphaComposite tac = AlphaComposite.getInstance(AlphaComposite.SRC, 1.0f);
for(int j = 0; j < alphaComp.length; j++) {
//nilai alpha composite
ac = AlphaComposite.getInstance(alphaComp[j], alpha);
//begin: composite demo
BufferedImage buffImg =
new BufferedImage(75, 80, BufferedImage.TYPE_INT_ARGB);
Graphics2D gbi = buffImg.createGraphics();
gbi.setColor(Color.BLUE);
gbi.fillRect(0, 0, 50, 50);
gbi.setColor(Color.RED);
gbi.setComposite(ac);
gbi.fillOval(25, 0, 50, 50);
//end: composite demo
//display image
g2.drawImage(buffImg,null, x, y);
g2.drawString(caption[j], x, y+70);
x += 80;
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
JFrame frame = new JFrame ();
frame.setTitle("Demonstrasi kelas AlphaComposite dengan nilain alpha = 0.5");
//agar frame dapat di-close
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// tambahkan canvas
GrafikCanvas canvas = new GrafikCanvas();
frame.getContentPane().add(canvas);
//agar ukuran frame menyesuaikan canvas
frame.pack();
//agar frame muncul di tengah layar
frame.setLocationRelativeTo(null);
//agar frame dapat terlihat
frame.setVisible(true);
}
}
Hasil Output Program :
cara membuat transparency unpam |
Clipping
Clipping Area mendefinisikan area dari sebuah objek yang akan tampak ketika objek tersebut di render.
Area yang berada di luar Clipping Area, tidak akan ditampilkan pada prosrs rendering.
Contoh penggunaan Clipping Area :
//import package yang diperlukanHasil Outputnya :
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import java.awt.image.*;
import javax.swing.*;
import javax.imageio.*;
import java.io.*;
/**
*
* @author Axio
*/
public class GrafikCanvas3 extends JPanel {
public GrafikCanvas3 () {
//menambahkan Canvas
this.setPreferredSize (new Dimension(700, 500));
this.setBackground(Color.WHITE);
}
public void paintComponent(Graphics g) {
//paint component dengan default method
super.paintComponent (g);
Graphics2D g2 = (Graphics2D)g;
try
{
BufferedImage img = ImageIO.read(new File ("C:\\Users\\Axio\\"
+ "Pictures\\simpson.jpg"));
//clip
Shape lingkaran = new Ellipse2D.Double(10, 10, 200, 200);
g2.clip(lingkaran);
g2.drawImage(img, 10, 10, 400, 300,null);
g2.setClip(null);
g2.drawString("Clipping : Simpson", 100, 350);
//image asli
g2.drawImage(img, 300, 10, 400, 300, null);
g2.drawString("Gambar Asli : Simpson", 400, 350);
}
catch(Exception e) {
}
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
JFrame frame = new JFrame ();
frame.setTitle("Contoh Clipping Area");
//agar frame dapat di-close
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// tambahkan canvas
GrafikCanvas3 canvas = new GrafikCanvas3();
frame.getContentPane().add(canvas);
//agar ukuran frame menyesuaikan canvas
frame.pack();
//agar frame muncul di tengah layar
frame.setLocationRelativeTo(null);
//agar frame dapat terlihat
frame.setVisible(true);
}
}
cara membuat clipping unpam |
Jika masih ada error silahkan berkomentar, jangan lupa share teman
sekelas ya agar bisa dapat nilai A. Masuk bareng lulus juga harus
bareng, jangan pelit ilmu antara teman sekelas. Terimakasih!
Jangan lupa kunjungi maswijaba untuk artikel bermanfaat lainnya.
Cara masukin source codenya gmna?
ReplyDelete