Sie sind auf Seite 1von 5

/*

* To change this license header, choose License Headers in Project Properties.


* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package javaapplication3;

import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.core.Point;
import org.opencv.core.Size;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

/**
*
* @author Ahmad
*/
public class MidPaper {

JFrame frame = new JFrame();


JPanel bp,p1,p2,p3;
JButton b1,b2,b3,b4;

File imageFile,output;
JLabel j1,j2,j3,j4,j5;
String path;
String fpath;
BufferedImage result;

MidPaper () {

bp = new JPanel();
p1 = new JPanel ();
p2 = new JPanel();
p3= new JPanel();
b1= new JButton("Load Image");
b2= new JButton("Blur");
b3= new JButton("Gray");
b4= new JButton("Save");

b1.setLocation(530, 10);
b1.setSize(100, 30);

b2.setLocation(560, 330);
b2.setSize(70, 30);

b3.setLocation(560, 370);
b3.setSize(70, 30);

b4.setLocation(560, 410);
b4.setSize(70, 30);

j1= new JLabel("blur");


j1.setLocation(0, 302);
j1.setSize(30, 30);

j2= new JLabel("gray");


j2.setLocation(330, 302);
j2.setSize(30, 30);

j3= new JLabel();


j4= new JLabel();
j5= new JLabel();

bp.setLocation(0, 0);
bp.setSize(300, 300);

bp.setBackground(Color.yellow);

p1.setLocation(0, 330);
p1.setSize(300, 230);
p1.setBackground(Color.red);

p2.setLocation(330, 330);
p2.setSize(220, 230);
p2.setBackground(Color.black);

frame.setVisible(true);
frame.setTitle("paper ");
frame.setSize(650, 600);
frame.setResizable(true);

frame.add(bp);
frame.add(j1);
frame.add(p1);
frame.add(j2);
frame.add(p2);
frame.add(b1);
frame.add(b2);
frame.add(b3);
frame.add(b4);
bp.add(j3);
p1.add(j4);
p2.add(j5);

frame.setLayout(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(50, 50);

b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{

try{
j3.setBounds(0, 0, 300, 300);

JFileChooser fileChooser = new JFileChooser();


fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
int result1 = fileChooser.showOpenDialog(null);
imageFile= fileChooser.getSelectedFile();
path=imageFile.getAbsolutePath();
ImageIcon my_image = new ImageIcon(path);
Image pic =my_image.getImage();
Image resimg = pic.getScaledInstance(j3.getWidth() , j3.getHeight(),
Image.SCALE_SMOOTH);
ImageIcon resized= new ImageIcon(resimg);
j3.setIcon(resized);
// BufferedImage image = ImageIO.read(imageFile);

}
catch(Exception ex)
{
ex.printStackTrace();
}

}});

b2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
try {

j4.setBounds(0, 0, 300, 230);

// Loading the OpenCV core library


System.loadLibrary( Core.NATIVE_LIBRARY_NAME );

// Reading the Image from the file and storing it in to a Matrix object
String file = path;
Mat src = Imgcodecs.imread(file);

// Creating an empty matrix to store the result


Mat dst = new Mat();

// Creating the Size and Point objects


Imgproc.threshold(src,dst,100,255,Imgproc.THRESH_BINARY);
// blur(Mat src, Mat dst, Size ksize, Point anchor, int borderType)
// Writing the image

Imgcodecs.imwrite("C:\\Users\\dell\\Documents\\NetBeansProjects\\practice2\\convert
ed33.jpg", dst);
fpath=
"C:\\Users\\dell\\Documents\\NetBeansProjects\\practice2\\converted32.jpg";
ImageIcon my_image = new ImageIcon(fpath);
Image pic =my_image.getImage();
Image resimg = pic.getScaledInstance(j4.getWidth() , j4.getHeight(),
Image.SCALE_SMOOTH);
ImageIcon resized= new ImageIcon(resimg);
j4.setIcon(resized);
System.out.println("Image processed");
}
catch (Exception ex){

}});

b3.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
try
{
j5.setBounds(0, 0, 220, 230);

File f = new File(path);

BufferedImage image = ImageIO.read(f);


result = new BufferedImage(image.getWidth(), image.getHeight(),
BufferedImage.TYPE_BYTE_GRAY);
Graphics2D graphic = result.createGraphics();
ImageIcon my_image = new ImageIcon(result);
graphic.drawImage(image, 0,0,Color.RED,null);

Image pic =my_image.getImage();


Image resimg = pic.getScaledInstance(j5.getWidth() , j5.getHeight(),
Image.SCALE_SMOOTH);
ImageIcon resized= new ImageIcon(resimg);
j5.setIcon(resized);

}
catch(Exception ex)
{
ex.printStackTrace();
}

}});

b4.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
try
{
File f1= new File(fpath);
BufferedImage image = ImageIO.read(imageFile);
BufferedImage result = new BufferedImage(image.getWidth(),
image.getHeight(), BufferedImage.TYPE_BYTE_GRAY);
Graphics2D graphic = result.createGraphics();
ImageIcon my_image = new ImageIcon(result);
graphic.drawImage(image, 0,0,Color.RED,null);

// output = new File("greyscale.jpg");


ImageIO.write(result,"jpg",f1);
BufferedImage imageout = ImageIO.read(f1);
String path=imageFile.getAbsolutePath();

//to write at desired


File imageFile = new File(f1.getAbsolutePath());
//BufferedImage fg = ImageIO.read(result);
JFileChooser jfc = new JFileChooser();
int retVal = jfc.showSaveDialog(null);
if(retVal==JFileChooser.APPROVE_OPTION)
{
File f = jfc.getSelectedFile();
String test = f.getAbsolutePath();
ImageIO.write((BufferedImage)result,"jpg",new File(test));
}

}
catch(Exception ex)
{
ex.printStackTrace();
}

}});

}
public static void main(String[] args) {
MidPaper ob = new MidPaper();
}

Das könnte Ihnen auch gefallen