javax.imageio.IIOException: 无法读取输入文件

4

我正在构建一个程序,将给定的图像压缩并保存为JPEG格式。这是我收到的错误信息:

Exception in thread "main" javax.imageio.IIOException: Can't read input file!
at javax.imageio.ImageIO.read(Unknown Source)
at JPEGCompression.main(JPEGCompression.java:23) 

这是我的主函数:

public class JPEGCompression {

public static void main(String[] args) throws IOException{

    String imageFile = "/tmp/garden.png";
    BufferedImage i = ImageIO.read(new File(imageFile)); // this line produces the error
    showImage("Original Image", i);

    compressAndShow(i, 0.7f);


}

4
您确定在图像路径前面需要加上斜杠吗? - Sinkingpoint
@Quirliom 哇,原来如此简单!它起作用了,谢谢 :) - pacman4565
请回答这个问题或者接受下面的答案,如果它对别人有帮助的话。现在这个回答对其他人来说并不是很有用。 - Gray
2个回答

0
我也遇到过这个问题。答案是图片的模式不正确。所以你应该将图片的模式从“CMYK”改为“RGB”。CMYK是用于打印机的,而RGB是用于电脑的。你可以使用Photoshop或ImageMagick来完成它。

-1

你没有检查文件是否存在/是否有文件权限,这应该是我的第一步调试。

另外,请尝试以下操作:String imageFile = "./tmp/garden.png";

我总是在斜杠前面加上 . 来告诉它我正在谈论当前目录,虽然我不认为这是必需的。


3
"/"和"./"的含义完全不同,"./"只是多余的,可以简单地删除。 - user207421

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接