Java
sir,
I attached my code...
To retrive the image from database through Frame...
But it show the error like this.....
Couldn't find file: img.jpg
Plz help me...
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileReader;
import java.io.InputStream;
import javax.swing.JTextField;
import java.sql.*;
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.JTextArea;
//import sun.security.krb5.internal.ktab.l;
public class RetrieveImage implements WindowListener, ActionListener {
File file;
RetrieveImage(){
JFrame f = new JFrame("Image Retrieval");
f.getContentPane().setLayout(null);
final JTextField text = new JTextField("", 20);
JLabel JLabel1 = new JLabel("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n TEXTURE FEATURES \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",JLabel.CENTER);
JLabel JLabel4 = new JLabel("Enter Energy ");
final JTextField val1= new JTextField("",30);
JLabel JLabel5 = new JLabel("Enter Entropy ");
final JTextField val4= new JTextField("",30);
JLabel JLabel6 = new JLabel("Enter Contrast ");
final JTextField val5= new JTextField("",30);
JLabel JLabel7 = new JLabel("Enter Homogenity ");
final JTextField val6= new JTextField("",30);
JLabel JLabel8 = new JLabel("Enter Correlation ");
final JTextField val7= new JTextField("",30);
JLabel JLabel2 = new JLabel("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n COLOR FEATURES \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ",JLabel.CENTER);
final JTextField val2=new JTextField("",20);
JLabel JLabel3 = new JLabel("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n SHAPE FEATURES \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",JLabel.CENTER);
final JTextField val3=new JTextField("",20);
JButton Button1 = new JButton("Browse");
JButton Button2 = new JButton("Search from database");
final JLabel l=new JLabel();
text.setBounds(10,10,120,20);
Button1.setBounds(140,10,100,20);
l.setBounds(250,10,100,20);
JLabel1.setBounds(10,50,200,15);
JLabel4.setBounds(10,90,200,20);
val1.setBounds(90,90,120,20);
JLabel5.setBounds(10,130,200,20);
val4.setBounds(90,130,120,20);
JLabel6.setBounds(10,170,200,20);
val5.setBounds(90,170,120,20);
JLabel7.setBounds(10,210,200,20);
val6.setBounds(90,210,120,20);
JLabel8.setBounds(10,250,200,20);
val7.setBounds(90,250,120,20);
JLabel2.setBounds(10,290,200,15);
val2.setBounds(10,330,120,20);
JLabel3.setBounds(10,370,200,15);
val3.setBounds(10,410,120,20);
Button2.setBounds(90,450,200,20);
f.setSize(500, 500);
f.setBackground(Color.GRAY);
f.add(text);
f.add(Button1);
f.add(l);
f.add(JLabel1);
f.add(JLabel4);
f.add(val1);
f.add(JLabel5);
f.add(val4);
f.add(JLabel6);
f.add(val5);
f.add(JLabel7);
f.add(val6);
f.add(JLabel8);
f.add(val7);
f.add(JLabel2);
f.add(val2);
f.add(JLabel3);
f.add(val3);
f.add(Button2);
f.setVisible(true);
Button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser chooser = new JFileChooser();
chooser.addChoosableFileFilter(new ImageFileFilter());
final int returnVal = chooser.showOpenDialog(null);
if(returnVal == JFileChooser.APPROVE_OPTION) {
file = chooser.getSelectedFile();
String path=file.getPath();
text.setText(path);
l.setIcon(new ImageIcon(path));
}
}
});
Button2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String feature1 = val1.getText();
String feature4 = val4.getText();
String feature5 = val5.getText();
String feature6 = val6.getText();
String feature7 = val7.getText();
String feature2 = val2.getText();
String feature3 = val3.getText();
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = null;
String url = "jdbc:mysql://localhost:3306/";
String db = "cbir";
String driver = "com.mysql.jdbc.Driver";
String user = "root";
String pass = "root";
Class.forName(driver).newInstance();
con = DriverManager.getConnection(url+db, user, pass);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT image FROM enhancement WHERE image like'%"+feature2+"%'");
InputStream sImage;
byte[] bytes=new byte[1024];
if (rs.next()) {
bytes = rs.getBytes("image");
}
if (bytes != null) {
File f=new File("img.jpg");
InputStream in = new ByteArrayInputStream(bytes);
BufferedImage image = ImageIO.read(in);
ImageIO.write(image, "jpg", f);
String path=f.getName();
ImageIcon icon = createImageIcon(path,"");
l.setIcon(icon);
}
}
catch(Exception ex){
System.out.println("error :"+ex);
}
}
});
}
public static void main(String args[]) {
RetrieveImage img=new RetrieveImage();
}
protected static ImageIcon createImageIcon(String path,String description) {
java.net.URL imgURL = RetrieveImage.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
public void windowOpened(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowClosing(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowClosed(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowIconified(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowDeiconified(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowActivated(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowDeactivated(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void actionPerformed(ActionEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
View Answers
April 8, 2010 at 12:57 PM
Hi Friend,
Try the following code:
import java.awt.*;
import java.awt.event.*;
import java.awt.image.*;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.FileDescriptor;
import java.io.FileReader;
import java.io.InputStream;
import javax.swing.JTextField;
import java.sql.*;
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.JTextArea;
public class RetieveImage implements WindowListener, ActionListener {
File file;
RetieveImage(){
JFrame f = new JFrame("Image Retrieval");
f.getContentPane().setLayout(null);
final JTextField text = new JTextField("", 20);
JLabel JLabel1 = new JLabel("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n TEXTURE FEATURES \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",JLabel.CENTER);
JLabel JLabel4 = new JLabel("Enter Energy ");
final JTextField val1= new JTextField("",30);
JLabel JLabel5 = new JLabel("Enter Entropy ");
final JTextField val4= new JTextField("",30);
JLabel JLabel6 = new JLabel("Enter Contrast ");
final JTextField val5= new JTextField("",30);
JLabel JLabel7 = new JLabel("Enter Homogenity ");
final JTextField val6= new JTextField("",30);
JLabel JLabel8 = new JLabel("Enter Correlation ");
final JTextField val7= new JTextField("",30);
JLabel JLabel2 = new JLabel("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n COLOR FEATURES \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ",JLabel.CENTER);
final JTextField val2=new JTextField("",20);
JLabel JLabel3 = new JLabel("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n SHAPE FEATURES \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",JLabel.CENTER);
final JTextField val3=new JTextField("",20);
JButton Button1 = new JButton("Browse");
JButton Button2 = new JButton("Search from database");
final JLabel lab=new JLabel();
final JLabel l=new JLabel();
text.setBounds(10,10,120,20);
Button1.setBounds(140,10,100,20);
l.setBounds(250,10,100,20);
JLabel1.setBounds(10,50,200,15);
JLabel4.setBounds(10,90,200,20);
val1.setBounds(90,90,120,20);
JLabel5.setBounds(10,130,200,20);
val4.setBounds(90,130,120,20);
JLabel6.setBounds(10,170,200,20);
val5.setBounds(90,170,120,20);
JLabel7.setBounds(10,210,200,20);
val6.setBounds(90,210,120,20);
JLabel8.setBounds(10,250,200,20);
val7.setBounds(90,250,120,20);
JLabel2.setBounds(10,290,200,15);
val2.setBounds(10,330,120,20);
lab.setBounds(150,330,120,20);
JLabel3.setBounds(10,370,200,15);
val3.setBounds(10,410,120,20);
Button2.setBounds(90,450,200,20);
f.setSize(500, 500);
f.setBackground(Color.GRAY);
f.add(text);
f.add(Button1);
f.add(l);
f.add(JLabel1);
f.add(JLabel4);
f.add(val1);
f.add(JLabel5);
f.add(val4);
f.add(JLabel6);
f.add(val5);
f.add(JLabel7);
f.add(val6);
f.add(JLabel8);
f.add(val7);
f.add(JLabel2);
f.add(val2);
f.add(JLabel3);
f.add(val3);
f.add(lab);
f.add(Button2);
f.setVisible(true);
Button1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser chooser = new JFileChooser();
chooser.addChoosableFileFilter(new ImageFileFilter());
final int returnVal = chooser.showOpenDialog(null);
if(returnVal == JFileChooser.APPROVE_OPTION) {
file = chooser.getSelectedFile();
String path=file.getPath();
text.setText(path);
l.setIcon(new ImageIcon(path));
}
}
});
April 8, 2010 at 12:59 PM
continue..
Button2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String feature1 = val1.getText();
String feature4 = val4.getText();
String feature5 = val5.getText();
String feature6 = val6.getText();
String feature7 = val7.getText();
String feature2 = val2.getText();
String feature3 = val3.getText();
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = null;
String url = "jdbc:
mysql://localhost:3306/";;
String db = "register";
String driver = "com.mysql.jdbc.Driver";
String user = "root";
String pass = "root";
Class.forName(driver).newInstance();
con = DriverManager.getConnection(url+db, user, pass);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT image FROM enhancement WHERE typ_string2 like'%"+feature2+"%'");
InputStream sImage;
byte[] bytes=new byte[1024];
if (rs.next()) {
bytes = rs.getBytes("image");
}
if (bytes != null) {
File f=new File("img.jpg");
InputStream in = new ByteArrayInputStream(bytes);
BufferedImage image = ImageIO.read(in);
ImageIO.write(image, "jpg", f);
String path=f.getName();
ImageIcon icon = createImageIcon(path,"");
lab.setIcon(icon);
}
}
catch(Exception ex){
System.out.println("error :"+ex);
}
}
});
}
public static void main(String args[]) {
RetieveImage img=new RetieveImage();
}
protected static ImageIcon createImageIcon(String path,String description) {
java.net.URL imgURL = RetieveImage.class.getResource(path);
if (imgURL != null) {
return new ImageIcon(imgURL, description);
} else {
System.err.println("Couldn't find file: " + path);
return null;
}
}
public void windowOpened(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowClosing(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowClosed(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowIconified(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowDeiconified(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowActivated(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void windowDeactivated(WindowEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
public void actionPerformed(ActionEvent e) {
throw new UnsupportedOperationException("Not supported yet.");
}
}
The above code works here.
Thanks