【问题标题】:Getting Exception in thread "main" java.lang.NullPointerException What is wrong with my below code [duplicate]在线程“main”java.lang.NullPointerException中获取异常我下面的代码有什么问题[重复]
【发布时间】:2016-08-23 07:40:28
【问题描述】:
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
    public class ImageTest {
           public static void main(String args[]){
                  ImageTest imageTest = new ImageTest();
                  imageTest.testImage();
           }
        void testImage() {
        int x = 10;
        int y = 10;
        int w = 24;
        int h = 44;
        //String path = "D:images\\upload_final\\030311175258.jpg";
        //String path = "D:\\screens\\testcd.jpg";
        String path = "D:\\Vision\\tmpsvs\\New\\20F.TIF";
        System.out.println("Path===>"+path);
        BufferedImage out = null;
        BufferedImage image = null;
        try {
            image = ImageIO.read(new File(path));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
             //out = image.getSubimage(x, y, w, h);
        try {
            out =ImageIO.read(new File(path)).getSubimage(x, y, w, h);
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

        try {
            ImageIO.write(out, "TIF", new File(path));
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
           }
    }

【问题讨论】:

  • 你试过使用调试器吗?
  • 是的,我这样做时得到了以下信息;
  • Path===>D:\Vision\tmpsvs\New\20F.TIF ImageTest.testImage(ImageTest.java:34) 处 ImageTest.testImage(ImageTest.java:34) 处的线程“main”java.lang.NullPointerException 异常。主(ImageTest.java:10)

标签: java pointers exception null


【解决方案1】:

试试这个 - 确保 \ 被转义。在 Windows 上,必须转义单个反斜杠。请参阅下面的代码。

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class ImageTest {
public static void main(String args[]) {
    ImageTest imageTest = new ImageTest();
    imageTest.testImage();

}

void testImage() {
    int x = 10;
    int y = 10;
    int w = 24;
    int h = 44;
    String path = "C:\\Users\\xxx\\yyy\\Documents\\M\\tumblr_nz324ifAzI1sgxxaao1_500.jpg";

    System.out.println("Path===>" + path);
    BufferedImage out = null;
    BufferedImage image = null;
    try {
        image = ImageIO.read(new File(path));
    } catch (IOException e) {
        e.printStackTrace();
    }
}

}

【讨论】:

  • 谢谢 Sanjeev...我尝试了 \\ 和 //。两者都产生了相同的结果。由于某种原因,我无法读取该文件。我已经检查了路径及其顺序。
  • 还有其他提示/帮助吗?
  • 知道了,只是不能按照上面的代码简单地裁剪TIF文件。有人有裁剪 TIF 图像的经验吗?
猜你喜欢
  • 1970-01-01
  • 2012-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多