Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ImageIO can't read input file

public static void imRes(String pat) {
        try {
            BufferedImage bckimg = ImageIO.read(new File("c:/s/deneme.jpg"));
            File s = new File(pat);
            BufferedImage im = ImageIO.read(s);
            BufferedImage im1 = resIm(im);
            BufferedImage finIm = mergIm(im1, bckimg);
            ImageIO.write(finIm, "jpg", new File("c:/s/deneme1.jpg"));
        } catch (IOException e) {

            e.printStackTrace();
        }

This is my first post, excuse me if I've done something wrong. This code was running properly untill i try to read an image from the source package. But now it can't read any image. What am I doing wrong? Or is it something about eclipse?

Exception:

javax.imageio.IIOException: Can't read input file!
    at javax.imageio.ImageIO.read(Unknown Source)
    at imRe.imRes(imRe.java:12)
    at imReTest.main(imReTest.java:6)

Thanks...

like image 494
s.alem Avatar asked Oct 29 '12 23:10

s.alem


1 Answers

Change / for \ if you are using windows.

A more cross-platform approach would be substitute

C: for File.listRoots()[0] and every / for File.separator.

Read more on the File api documentation

EDIT

(I didn't read this line, sorry)

This code was running properly untill i try to read an image from the source package

In order to get a file from inside your jar package, one must use the getClass().getResource() method.

Example:

application-package:
|-Main.java
|-resources
  |-image.jpg

For the above directory structure:

BufferedImage im = ImageIO.read(new File(getClass().getResource("/resources/image.jpg").toURI()));

Would do the trick.

like image 60
Bruno Vieira Avatar answered Sep 19 '22 12:09

Bruno Vieira