无法使用 JFileDialog 加载图像

罗德尼·纳尔特

最初使用 jfilechooser 将 jpg 文件上传到项目但切换到 jFileDialog 因为我想在缩略图视图中获取图像。但是当我运行该项目时,我收到此错误消息:

javax.imageio.IIOException:Cant read input file!

这是下面的代码:

FileDialog fd = new FileDialog(this,"Choose a File",FileDialog.LOAD); 
    fd.setDirectory("C:\\");
    fd.setFile("*.jpg;*.jpeg");
    fd.setVisible(true);  
    filename = fd.getFile();
    if(filename==null){
    }else{
    try{
            File imgs =new File(filename);
            BufferedImage bufferedimage=ImageIO.read(imgs);
            BufferedImage thumbnail=Thumbnails.of(bufferedimage)
            .size(145, 141)
            .asBufferedImage();
            ByteArrayOutputStream os = new  ByteArrayOutputStream();
            ImageIO.write(thumbnail,"jpeg", os);
            InputStream is=new ByteArrayInputStream(os.toByteArray());
            ByteArrayOutputStream bos = new  ByteArrayOutputStream();
            byte[] buf =new byte[1024];
            try{
                for(int readNum; (readNum=is.read(buf))!=-1;){
                    bos.write(buf,0,readNum);
                    System.out.println("Read" +readNum+ "bytes,");
                }
            }catch(IOException ex){
                Logger.getLogger(null);
            }
            person_image=bos.toByteArray();
        }catch(Exception e){
            JOptionPane.showMessageDialog(null, e);
        }finally{
            try{
                rs.close();
                pst.close();
            }
            catch(Exception e){
            }
        }

我认为问题来自本节:

File imgs =new File(filename);
BufferedImage bufferedimage=ImageIO.read(imgs);

它似乎没有得到文件。请问我做错了什么?

亚历山大·道姆

我只是测试了一下,FileDialog.getFile 方法只返回文件名,而不是完整路径!要获取目录,您必须调用 FileDialog.getDirectory

解决此问题的最简单方法是简单地连接目录和文件。

filename = fd.getDirectory() + File.seperator + fd.getFile();

我不完全确定您是否需要 File.seperator,因为 fd.getDirectory 可能已经在最后有文件分隔符,并且您会得到多个分隔符。

要解决这个问题,请使用:

filename = new File(new File(fd.getDirectory()), fd.getFile()).getPath();

或者只是直接存储文件,最后没有 .getPath 并且不要将字符串存储到路径中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法使用OpenCV加载图像

来自分类Dev

无法使用 imread() 加载图像

来自分类Dev

无法使用通用图像加载器加载图像

来自分类Dev

无法从URL加载图像

来自分类Dev

pygame图像无法加载?

来自分类Dev

无法加载反应图像

来自分类Dev

无法让fancybox加载图像

来自分类Dev

无法加载图像 - Javafx

来自分类Dev

imdecode 无法加载图像

来自分类Dev

Webpack:图像无法加载

来自分类Dev

无法加载角度图像

来自分类Dev

Java Swing:无法使用getResource加载图像

来自分类Dev

无法使用毕加索从磁盘加载图像

来自分类Dev

Pod(PaymentKit)无法使用imageNamed加载图像

来自分类Dev

无法使用AsyncTask在ListView中加载图像

来自分类Dev

无法使用loadImageWithCompletionHandler加载GKAchievementDescription图像

来自分类Dev

无法使用UIImage或NSData加载图像

来自分类Dev

使用RewriteEngine时无法加载图像吗?

来自分类Dev

无法使用 CImg 加载任何图像

来自分类Dev

Pytorch:无法使用 ImageFolder 加载图像

来自分类Dev

无法使用 Spring Boot thymeleaf 加载图像

来自分类Dev

使用InputStream加载图像

来自分类Dev

使用 PyCharm 加载图像

来自分类Dev

无法使用滑行在图像视图中加载图像

来自分类Dev

无法在QML图像中加载图像源

来自分类Dev

无法在ImageViewAsync中加载图像

来自分类Dev

Jekyll CSS图像无法加载

来自分类Dev

Webpack无法加载png图像

来自分类Dev

无法加载简单的图像。Libgdx