javax.imageio.IIOException:Can';无法读取输入文件
我正在构建一个压缩给定图像并将其保存为JPEG格式的程序。这是我收到的错误消息:javax.imageio.IIOException:Can';无法读取输入文件,java,bufferedimage,javax.imageio,Java,Bufferedimage,Javax.imageio,我正在构建一个压缩给定图像并将其保存为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 JPEGCompre
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);
}
您没有检查该文件是否存在/是否具有该文件的权限,这将是我调试的第一步 还可以尝试以下操作:
String imageFile=“./tmp/garden.png”代码>
我总是在斜杠前面加一个
,告诉它我指的是当前目录,尽管我认为它不是必需的。我也遇到了这个问题。答案是图片的模型是错误的。因此,您应该将图片的模型从“CMYK”更改为“RGB”。CMYK代表打印机,RGB代表计算机。您可以使用photoshop或imageMagick来完成此操作。您确定需要图像路径上的前导斜杠吗?@Quilliom哇,就是这么简单!这已经奏效了,谢谢:)请为这个问题添加一个答案,或者接受下面的答案(如果有帮助的话)。现在,这对其他人没有多大帮助。/
和/
意味着完全不同的事情,/
可以简单地删除,只是多余的。