Java 打开图像
我是个白痴。为什么我不能读取任何文件Java 打开图像,java,image-processing,io,javax.imageio,Java,Image Processing,Io,Javax.imageio,我是个白痴。为什么我不能读取任何文件 import java.awt.Image; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; public class mainClass { public static void main(String[] args) { try { Image picture = ImageIO.read(
import java.awt.Image;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
public class mainClass {
public static void main(String[] args) {
try {
Image picture = ImageIO.read(new File("picture.png"));
} catch (IOException e) {
e.printStackTrace();
}
}
}
文件肯定在src文件夹中
但是它每次抛出异常,即使文件在那里,也没有拼写错误
编辑:第一句是真的,我没有把图像放在词根里。也去过那里,知道那种感觉。无论如何,试着打印出当前的工作目录,这将告诉你应用程序真正从哪里读取
try
{
Image picture = ImageIO.read(new File("picture.png"));
}
catch (IOException e)
{
String workingDir = System.getProperty("user.dir");
System.out.println("Current working directory : " + workingDir);
e.printStackTrace();
}
尝试指定图像的路径。例如:
Image picture = ImageIO.read(new File("C:/Desktop/picture.png"));
Image picture = ImageIO.read(new File("C:/workspace/Project/src/picture.png"));
或者,如果图像位于您的工作区中,例如:
Image picture = ImageIO.read(new File("C:/Desktop/picture.png"));
Image picture = ImageIO.read(new File("C:/workspace/Project/src/picture.png"));
您可以看到图像位置(图像的路径)在图像中单击鼠标右键,然后单击“属性”
您可以使用一个slah(/)或两个反斜杠(\\)来分隔路径的目录。java中有一种二分法
Image picture = ImageIO.read(SomeClassOfYours.class.getResource("/picture.png"));
文件
,则最佳路径是完全绝对路径。相对路径取决于应用程序运行的工作目录,这可能有所不同
Image picture = ImageIO.read(new File("C:/.../src/picture.png"));
/
函数将检查图像是否损坏。如果它已损坏,它将抛出异常
ImageIO.read(new File("C:/Desktop/picture.jpeg"));
你有错误吗?发生了什么?是的,它每次都抛出异常。这就是我在程序中的所有代码。它会抛出什么异常?而且src文件夹并不意味着它会被找到。。它需要位于运行时文件夹中。您是如何运行它的?我正在使用eclipse,并从那里运行它。我所做的只是将图像文件粘贴到src文件夹中,图像文件应该放在eclipse项目的根目录中,而不是src/文件夹中。另外,请发布StackTracer相关参考:另外,使用
绝对路径
(如/home/Stuff/Pictures/picture.png
)值得一试。另一方面,它依赖于操作系统。注意:File
对象有一个方法,在本例中,它可能也有同样的作用。好的,这是一个非常有建设性的评论,这是积极的。最近,不知道为什么在没有给出充分理由的情况下如此降低用户声誉。失去了对未来积极贡献的信心。