1

When I am trying to resize a image i am getting an exception saying "java.lang.IllegalStateException: no ImageReader for given format".

 public static void main(String... args) throws Exception {   
        IMOperation op = new IMOperation();
        op.addImage();                       
        op.resize(350)
        op.addImage()               
        BufferedImage images = ImageIO.read(new File("image.jpg")); 

        // set up command
        ConvertCmd convert = new ConvertCmd();
        Stream2BufferedImage s2b = new Stream2BufferedImage();
        convert.setOutputConsumer(s2b);

        // run command and extract BufferedImage from OutputConsumer
        convert.run(op,images);
        BufferedImage img = s2b.getImage();
    }
Debojit Paul
  • 213
  • 4
  • 12

2 Answers2

3

Ya guys i have solved the problem . Actually i have to specify the image type of the output image

public static void main(String... args) throws Exception {   
           IMOperation op = new IMOperation();
            op.addImage();                       
            op.resize(350)
            op.addImage("jpg:-")               
            BufferedImage images = ImageIO.read(new File("image.jpg")); 

            // set up command
            ConvertCmd convert = new ConvertCmd();
            Stream2BufferedImage s2b = new Stream2BufferedImage();
            convert.setOutputConsumer(s2b);

            // run command and extract BufferedImage from OutputConsumer
            convert.run(op,images);
            BufferedImage img = s2b.getImage();
        }
Debojit Paul
  • 213
  • 4
  • 12
2
BufferedImage images = ImageIO.read(new File("image.jpg")); 
    int type = (images.getTransparency() == Transparency.OPAQUE)
            ? BufferedImage.TYPE_INT_RGB
            : Buffenter code hereeredImage.TYPE_INT_ARGB;
    BufferedImage finalImage = images;
    int w = 40;
    int h = 40;
    BufferedImage resizedImage = new BufferedImage(w, h, type);
    Graphics2D g2 = resizedImage.createGraphics();
    g2.drawImage(finalImage, 0, 0, null);
    g2.dispose();
    finalImage = resizedImage;

This will resize bufferedImage to given dimensions and returns new bufferedImage.

Kruti Patel
  • 1,422
  • 2
  • 23
  • 36
  • Hi , thanks for the reply .Actually I want to do lot of processing on the image and not just resizing. also I tried this method before , this reduces the image quality . I can see wrinkles on the image . But with im4java ,I get a very good quality image – Debojit Paul Sep 23 '15 at 14:25