为什么我收到java.lang.NullPointerExeption错误?

时间:2016-05-03 14:29:43

标签: java

我试图编写一个程序,将图像转换为灰度,然后使用新名称保存图像的副本("灰色 - " + fname),但是我是运行程序时收到错误消息java.lang.NullPointerExeption。

gray.save();
下面代码底部的

行突出显示。我不确定程序为什么说变量gray为空。我应该改变线的顺序吗?谢谢你的帮助。

import edu.duke.*;
import java.io.File;
    public class ImageConverterAndSaver {
        public ImageResource makeGray(ImageResource inImage) {
        ImageResource outImage = new ImageResource(inImage.getWidth(), inImage.getHeight());
        for (Pixel px:outImage.pixels()){
            Pixel inPixel = inImage.getPixel(px.getX(), px.getY());
            int grayConversion = (inPixel.getRed() + inPixel.getGreen() + inPixel.getBlue()/3);
            px.setRed(grayConversion);
            px.setGreen(grayConversion);
            px.setBlue(grayConversion);
        }
        return outImage;
    }
        public void doSave(){
        DirectoryResource dr = new DirectoryResource();
        for (File f: dr.selectedFiles()) {
            ImageResource image = new ImageResource(f);

            String fname = image.getFileName();
            String newName = "gray-" + fname;
            image.setFileName(newName);
            ImageResource gray = makeGray(image);
            gray.draw();
            gray.save();
        }
    }
    }

0 个答案:

没有答案