import javax.imageio.ImageIO;
import javax.swing.Icon;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import java.awt.Color;
import java.awt.MediaTracker;
import java.awt.Toolkit;
public class OpenImageLabel extends JLabel {
JLabel label;
BufferedImage bimage;
ImageIcon iconimage;
Image displayImage;
BufferedImage biSrc, biDest;
BufferedImage bi;
Graphics2D big;
public OpenImageLabel(){
this.setBackground(Color.RED);
iconimage = new ImageIcon();
}
public OpenImageLabel(Image image){
ImageIcon newimage = new (Image)(image);
}
public void setPane(BufferedImage image){
//Doesn't work
validate();
}
public void setPane(ImageIcon image){
this.setIcon(image);
validate();
}
public void openFile(File file){
String filename = (file.getPath());
//iconimage = new ImageIcon(filename);
try {
image = ImageIO.read(file);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
displayImage = Toolkit.getDefaultToolkit().getImage(filename);
MediaTracker mt = new MediaTracker(this);
try {
mt.waitForAll();
} catch (Exception e) {
System.out.println("Exception while loading.");
}
//Image image = toImage(displayImage);
this.setPane(displayImage);
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2D = (Graphics2D) g;
g2D.drawImage(bi, 0, 0, this);
}
// This method returns an Image object from a buffered image
public static Image toImage(BufferedImage bufferedImage) {
return Toolkit.getDefaultToolkit().createImage(bufferedImage.getSource());
}
public void rotateImage(){
//This is where we will rotate the image
int w = bimage.getWidth();
int h = bimage.getHeight();
BufferedImage dimg = dimg = new BufferedImage(w, h, bimage.getType());
Graphics2D g = dimg.createGraphics();
g.rotate(Math.toRadians(90), w/2, h/2);
g.drawImage(bimage, null, 0, 0);
iconimage = (new ImageIcon(dimg));
//setPane(iconimage);
}
}