Posts Tagged image
Writing/Reading image in java
Posted by Chirag Jain in Java, Java Image API, Java Swing on December 15, 2009
By using javax.imageio package, we can read/write images. Here is the code:
import java.awt.*;
import javax.swing.*;
import javax.imageio.*;
import java.awt.image.*;
import java.io.*;
public class CropImage extends JFrame {
Image image;
Insets insets;
BufferedImage img = null;
public CropImage() {
super("Crop Image");
ImageIcon icon = new ImageIcon("Sunset.jpg");
//image = icon.getImage();
//image = createImage(new FilteredImageSource(image.getSource(),
//new CropImageFilter(100, 70, 140, 250)));
try {
img = ImageIO.read(new File("Sunset.jpg"));
File outputfile = new File("saved.gif");
ImageIO.write(img, "gif", outputfile);
} catch (IOException e) {
}
}
public void paint(Graphics g) {
super.paint(g);
if (insets == null) {
insets = getInsets();
}
g.drawImage(img, insets.left, insets.top, this);
}
public static void main(String args[]) {
JFrame frame = new CropImage();
frame.setSize(250, 250);
frame.show();
}
}
-
Explanation
:java.imageio.ImageIO class has a write method
ImageIO.write(img, "gif", outputfile)
, which takes the image existing in your system path and writes it to desired image format (gif,png..). To read the image file from the system, use img = ImageIO.read(new File("Sunset.jpg"))
which returns a BufferedImage reference.
Instead of using javax.imageio, we can use java.awt.image package also, as shown in commented lines.
ImageIcon icon = new ImageIcon("Sunset.jpg");
image = icon.getImage();
image = createImage(new FilteredImageSource(image.
getSource(),new CropImageFilter(100, 70, 140, 250)));
To paint the image:
g.drawImage(img, insets.left, insets.top, this);
But this way, writing the image is not possible.