因此,基本上这是程序的一部分,它应该将图像的灰度值分别转换为下面的ascii代码,但有错误,说“方法必须返回一个字符类型[] []“我已经成功了第一个(”返回null“)打印空白。使用grayVal转换为Ascii字符将图像转换为Ascii代码
public static char[][] imageToASCII(Image img)
{
BufferedImage bufImg = convert(img);
for(int j=0; j<bufImg.getHeight(); j++)
{
for(int i=0; i<bufImg.getWidth(); i++)
{
int values=bufImg.getRGB(i,j);
Color oldColor = new Color(values);
int red = oldColor.getRed(); // get red value
int green = oldColor.getGreen(); // get green value
int blue = oldColor.getBlue();
double grayVal = 0.299*red + 0.587*green + 0.114*blue;
Color newColor = new Color((int)grayVal, (int)grayVal, (int)grayVal);
if(grayVal >= 230)
{
return null;
}
else if(grayVal >= 200 && grayVal < 230)
{
return .;
}
else if(grayVal >= 180 && grayVal < 200)
{
return *;
}
else if(grayVal >= 160 && grayVal < 180)
{
return :;
}
else if(grayVal >= 130 && grayVal < 160)
{
return o;
}
else if(grayVal >= 100 && grayVal < 130)
{
return &;
}
else if(grayVal >= 70 && grayVal < 100)
{
return 8;
}
else if(grayVal >=50 && grayVal < 70)
{
return #;
}
else
return @
}
}
}}
那么,该方法的返回类型是'炭[] []'。这是一个二维字符数组。但是你写了一些类似'return:'的东西,它根本不是合法的Java语句,即使你使用了'return':'',那仍然是一个char,而不是一个二维的char数组。 – RealSkeptic
你能给我一个关于二维字符数组返回的例子吗? – raymondT