我正在完成一项学校作业,我需要创建一个圆形渐变雾过滤器。我做了一些关于如何模糊图像和研究的研究,我需要获取当前像素周围像素的颜色值,并对它们进行平均以设置模糊图像的新颜色。到目前为止,我只关注模糊方面,我有这个代码:
public void circularGradientBlur()
{
Pixel regularPixel = null;
Pixel L_regularPixel = null;
Pixel R_regularPixel = null;
Pixel T_regularPixel = null;
Pixel B_regularPixel = null;
Pixel blurredPixel = null;
Pixel pixels[][] = this.getPixels2D();
for (int row = 2; row < pixels.length; row++)
{
for (int col = 2; col < pixels[0].length - 1; col++)
{
regularPixel = pixels[row][col];
if (row != 0 && col != 0 && row != 498 && col != 498)
{
L_regularPixel = pixels[row - 1][col];
R_regularPixel = pixels[row + 1][col];
T_regularPixel = pixels[row][col - 1];
B_regularPixel = pixels[row][col + 1];
blurredPixel.setRed((L_regularPixel.getRed() + R_regularPixel.getRed() + T_regularPixel.getRed() + B_regularPixel.getRed()) / 4);
blurredPixel.setGreen((L_regularPixel.getGreen() + R_regularPixel.getGreen() + T_regularPixel.getGreen() + B_regularPixel.getGreen()) / 4);
blurredPixel.setBlue((L_regularPixel.getBlue() + R_regularPixel.getBlue() + T_regularPixel.getBlue() + B_regularPixel.getBlue()) / 4);
}
}
}
}
当我尝试使用此代码时,我在设置新颜色的行上得到NullPointerException - blurredPixel.setRed(),blurredPixel.setGreen(),blurredPixel.setBlue()。这个错误使我感到困惑,因为我有其他类似代码的方法,并且不会抛出此错误。我很感激能得到的任何帮助!
答案 0 :(得分:0)
您必须创建blurPixel的实例。如果你打电话给塞特犬,它总是为空。