KARAWANGPORTAL - Hiii Pagi sobat kali ini admin akan membagikan "Source Code Java Program
Digital Image Processing (JIP)" Jadi gini pada jaman dahulu kala pernah
ikut matkul yang namanya pengolahan citra atau apalah dahh agak lupa,
ya gitu dah pokoknya admin di suruh dosen membuat program yang agak agak
mirip photosop gitu dah pungsinya.
oke penampakannya liat aja dulu kurang lebih memiliki fitur - fitur seperti :
Nah kalau kita liat fitur - fiturnyaJava Source Code For Image Processing Project with Netbeans |
BAGIAN 1
- file memiliki submenu sebagai berikut
- file memiliki submenu sebagai berikut
- Open = berpungsi untuk mengambil image yang mau di rubah warna sesuai Fitur "Filter"
- Save = ya sepertibiasa saving akhir dari proses image yang sudah dilakukan (JIP) Java Image Prosesing.
- Exit = Keluar atau out aplikasi
- Menu Filter memiliki submenu sebagai berikut
- Gray Scal
- Blur
- Sharpen
- Brigthen
- Edghten
- Edge Detected
- Negatif
- Rotate
- Scale
- Menu About yang berikan bagian keterang dari Aplikasi ini.
Nah sampai disini kita baru akan memulai ngoding oke langsung aja disimak
Proses Pembuatan disini kita membutuhkan 3 class
- ImagePanel.java
- ImageProcesingFrame
- PengolahanCItra.java
Lets to Time Creating Class ImagePanel.java
------------------------------------------------------------------------------------------------------------
/* DILARANG MERUBAH ATAU MENGHAPUS HAK CIPTA INI
* ---------------------------------------------------------------------------------------------------------
* Hakcipta www.karawangportal.com
* Semua isi dalam file ini adalah hak milik www.karawangportal.com
* anda tidak diperkenenkan untuk menggunakan file atau merubah file ini
* kecuali anda tidak merubah atu menghapus hak cipta ini
*
* Pemilik tidak bertanggung jawwab jika anda menyalahgunakan file ini
* Pemilik tidak menjamin apapuna atas file ini
*
* Anda bisa menghubungi pemilik hak cipta ini
* email : karawangportal@gmail.com
* blog : www.karawangportal.com
* -----------------------------------------------------------------------
*/
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.MediaTracker;
import java.awt.Toolkit;
import java.awt.color.ColorSpace;
import java.awt.geom.AffineTransform;
import java.awt.image.AffineTransformOp;
import java.awt.image.BufferedImage;
import java.awt.image.BufferedImageOp;
import java.awt.image.ByteLookupTable;
import java.awt.image.ColorConvertOp;
import java.awt.image.ConvolveOp;
import java.awt.image.Kernel;
import java.awt.image.LookupOp;
import java.awt.image.RescaleOp;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.JFileChooser;
import javax.swing.JPanel;
public class ImagePanel extends JPanel{
private BufferedImage image;
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
if(image!=null){
g.drawImage(image, 0, 0, getWidth(), getHeight(), this);
}
}
public void loadImage(String name){
Image loadImage=Toolkit.getDefaultToolkit().getImage(name);
MediaTracker tracker=new MediaTracker(this);
tracker.addImage(loadImage, 0);
try{
tracker.waitForID(0);
}catch(InterruptedException e){
}
image=new BufferedImage(loadImage.getWidth(null), loadImage.getHeight(null), BufferedImage.TYPE_INT_ARGB);
Graphics2D g2=image.createGraphics();
g2.drawImage(loadImage, 0, 0, null);
repaint();
}
public void saveImage(){
JFileChooser chooser=new JFileChooser();
chooser.setCurrentDirectory(new File("."));
int r=chooser.showSaveDialog(this);
if(r==JFileChooser.APPROVE_OPTION){
File sf=chooser.getSelectedFile();
try{
ImageIO.write(image, "png", sf);
}catch(Exception ex){
System.out.println(ex);
}
}
}
public void filter(BufferedImageOp op){
BufferedImage filteredImage=new BufferedImage(image.getWidth(), image.getHeight(), image.getType());
op.filter(image, filteredImage);
image=filteredImage;
repaint();
}
private void convolve(float []elemnts){
Kernel kernel=new Kernel(3, 3, elemnts);
ConvolveOp op=new ConvolveOp(kernel);
filter(op);
}
public void blur(){
float weight=1.0f/9.0f;
float []elements=new float[9];
for(int i=0;i<9;i++){
elements[i]=weight;
}
convolve(elements);
}
public void sharpen(){
float []elements={0.0f,-1.0f,0.0f,-1.0f,5.f,-1.0f,0.0f,-1,0f,0.0f };
convolve(elements);
}
void edgeDetect(){
float []elements={0.0f,-1.0f,0.0f,-1.0f,4.f,-1.0f,0.0f,-1.0f,0.0f};
convolve(elements);
}
public void brighten(){
float a=1.5f;
float b=-20.0f;
RescaleOp op=new RescaleOp(a, b, null);
filter(op);
}
void negatif(){
byte negatif[]=new byte[256];
for(int i=0;i<256;i++){
negatif[i]=(byte)(256-i);
}
ByteLookupTable table=new ByteLookupTable(0, negatif);
LookupOp op=new LookupOp(table, null);
filter(op);
}
void rotate() {
AffineTransform transform = AffineTransform.getRotateInstance(Math.toRadians(5),
image.getWidth() / 2, image.getHeight() / 2);
AffineTransformOp op = new AffineTransformOp(transform,
AffineTransformOp.TYPE_BILINEAR);
filter(op);
}
void scale() {
AffineTransform transform = AffineTransform.getScaleInstance(2, 2);
AffineTransformOp op = new AffineTransformOp(transform,
AffineTransformOp.TYPE_BILINEAR);
filter(op);
}
void gray(){
ColorSpace cs = ColorSpace.getInstance(ColorSpace.CS_GRAY);
ColorConvertOp op = new ColorConvertOp(cs, null);
filter(op);
}
}
------------------------------------------------------------------------------------------------------
Lets to Time Creating Class ImageProcesingFrame.java
------------------------------------------------------------------------------------------------------
/*
* DILARANG MERUBAH ATAU MENGHAPUS HAK CIPTA INI
* -----------------------------------------------------------------------
* Hakcipta www.ilmubiner.com
* Semua isi dalam file ini adalah hak milik www.ilmubiner.com
* anda tidak diperkenenkan untuk menggunakan file atau merubah file ini
* kecuali anda tidak merubah atu menghapus hak cipta ini
*
* Pemilik tidak bertanggung jawwab jika anda menyalahgunakan file ini
* Pemilik tidak menjamin apapuna atas file ini
*
* Anda bisa menghubungi pemilik hak cipta ini
* email : aliilmubiner.com
* blog : www.ilmubiner.com
* -----------------------------------------------------------------------
*/
import java.awt.Color;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.HeadlessException;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
public class ImageProcesingFrame extends JFrame implements ActionListener{
private ImagePanel panel,panel2;
private JMenuItem openItem,grayItem;
private JMenuItem saveItem;
private JMenuItem exitItem;
private JMenuItem blurItem;
private JMenuItem sharpenItem;
private JMenuItem brightenItem;
private JMenuItem edgeDetectItem;
private JMenuItem negatifItem;
private JMenuItem roteteItem;
private JMenuItem aboutItem;
private JMenuItem scaleItem;
public ImageProcesingFrame() throws HeadlessException {
setTitle("4l dkid R3b3l");
Dimension screeen_size=Toolkit.getDefaultToolkit().getScreenSize();
int lebar=1000;
int panjang=700;
setPreferredSize(new java.awt.Dimension(lebar, panjang));
setBackground(BACKGROUND_COLOR);
setBounds((screeen_size.width-lebar)/2,
(screeen_size.height-panjang)/2,lebar,panjang);
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
//container get conten pen();
panel=new ImagePanel();
panel2=new ImagePanel();
JMenu fileMenu=new JMenu("File");
openItem=new JMenuItem("Open");
openItem.addActionListener(this);
fileMenu.add(openItem);
saveItem=new JMenuItem("save");
saveItem.addActionListener(this);
fileMenu.add(saveItem);
exitItem=new JMenuItem("Exit");
exitItem.addActionListener(this);
fileMenu.add(exitItem);
JMenu editMenu=new JMenu("Filter");
grayItem=new JMenuItem("gray Scal");
grayItem.addActionListener(this);
editMenu.add(grayItem);
blurItem=new JMenuItem("Blur");
blurItem.addActionListener(this);
editMenu.add(blurItem);
sharpenItem=new JMenuItem("Sharpen");
sharpenItem.addActionListener(this);
editMenu.add(sharpenItem);
brightenItem=new JMenuItem("Brighten");
brightenItem.addActionListener(this);
editMenu.add(brightenItem);
edgeDetectItem=new JMenuItem("Edge Detect");
edgeDetectItem.addActionListener(this);
editMenu.add(edgeDetectItem);
negatifItem=new JMenuItem("Negatif");
negatifItem.addActionListener(this);
editMenu.add(negatifItem);
roteteItem=new JMenuItem("Rotate");
roteteItem.addActionListener(this);
editMenu.add(roteteItem);
scaleItem=new JMenuItem("Scale");
scaleItem.addActionListener(this);
editMenu.add(scaleItem);
JMenu help=new JMenu("About");
aboutItem=new JMenuItem("about");
aboutItem.addActionListener(this);
help.add(aboutItem);
JMenuBar menuBar=new JMenuBar();
menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(help);
setJMenuBar(menuBar);
setLayout(new GridLayout(1, 2));
add(panel2);
add(panel);
}
@Override
public void actionPerformed(ActionEvent e) {
Object source=e.getSource();
if(source==openItem){
JFileChooser choser=new JFileChooser();
choser.setCurrentDirectory(new File("."));
choser.setFileFilter(new javax.swing.filechooser.FileFilter() {
@Override
public boolean accept(File f) {
String name=f.getName().toLowerCase();
return name.endsWith(".gif")||name.endsWith(".jpg")||
name.endsWith(".jpeg")||name.endsWith(".bmp")||
name.endsWith(".png")||name.endsWith(".tiff")||
f.isDirectory();
}
@Override
public String getDescription() {
return "*.gif,*.jpg,*.jpeg,*.bmp,*.png,*.tiff";
}
});
int r=choser.showOpenDialog(this);
if(r==JFileChooser.APPROVE_OPTION){
String name=choser.getSelectedFile().getAbsolutePath();
panel.loadImage(name);
panel2.loadImage(name);
}
}else if (source == saveItem) {
panel.saveImage();
} else if (source == exitItem) {
System.exit(0);
} else if (source == blurItem) {
panel.blur();
} else if (source == sharpenItem) {
panel.sharpen();
} else if (source == brightenItem) {
panel.brighten();
} else if (source == edgeDetectItem) {
panel.edgeDetect();
} else if (source == negatifItem) {
panel.negatif();
} else if (source == roteteItem) {
panel.rotate();
} else if (source == aboutItem){
JOptionPane.showMessageDialog(this,
"Java Image Processing (JIP) adalah demo aplikasi pengolahan citra \n" +
"sederhana menggunakan pemrograman Java\n\n" +
"Aplikasi ini adalah Open Source dan dibuat oleh :\n" +
"- 4l dkid R3b3l(111100042)\n" +
" alidkidrebel@gmail.com\n",
"Tentang JIP",
JOptionPane.INFORMATION_MESSAGE);
} else if (source == scaleItem){
panel.scale();
} else if (source == grayItem){
panel.gray();
}
}
private static final Color BACKGROUND_COLOR=new Color(0x30, 0x30, 0x50);
}
--------------------------------------------------------------------------------------------------------------
Lets to Time Creating Class PengolahanCItra.java
--------------------------------------------------------------------------------------------------------------
/*
* DILARANG MERUBAH ATAU MENGHAPUS HAK CIPTA INI
* -----------------------------------------------------------------------
* Hakcipta www.ilmubiner.com
* Semua isi dalam file ini adalah hak milik www.ilmubiner.com
* anda tidak diperkenenkan untuk menggunakan file atau merubah file ini
* kecuali anda tidak merubah atu menghapus hak cipta ini
*
* Pemilik tidak bertanggung jawwab jika anda menyalahgunakan file ini
* Pemilik tidak menjamin apapuna atas file ini
*
* Anda bisa menghubungi pemilik hak cipta ini
* email : aliilmubiner.com
* blog : www.ilmubiner.com
* -----------------------------------------------------------------------
*/
//package ali.pengolahan.citra;//
import com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel;
import java.awt.image.BufferedImage;
import java.io.File;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class PengolahanCItra {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
SwingUtilities.invokeLater(new Runnable(){
public void run(){
try {
UIManager.setLookAndFeel(new NimbusLookAndFeel());
JFrame frame = new ImageProcesingFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocationRelativeTo(null);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
} catch (UnsupportedLookAndFeelException ex) {
Logger.getLogger(PengolahanCItra.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
}
}
Java Source Code For Image Processing Project with Netbeans |
Nah diatas adalah Source Code Java Program Digital Image Processing (JIP)
terdiri dari 3 class, class untuk memanggil atau memproses aplikasi tersebut ada di class PengolahanCItra.java. Sampai disini kita sudah membuat Aplikasi sederhana Digital Image Processing (JIP), Semoga bermanfaat berikan komentar jika terjadi kesalahan
Baca Juga : Source Code Program Java Bitmap Frame
terdiri dari 3 class, class untuk memanggil atau memproses aplikasi tersebut ada di class PengolahanCItra.java. Sampai disini kita sudah membuat Aplikasi sederhana Digital Image Processing (JIP), Semoga bermanfaat berikan komentar jika terjadi kesalahan
Baca Juga : Source Code Program Java Bitmap Frame
No comments:
Post a Comment
Karawang Portal | adalah tempat belajar blogger pemula dan profesional. Kamu bisa menemukan kami di sosial media berikut.
Note: Only a member of this blog may post a comment.