因此,基本上這是程序的一部分,它應該將圖像的灰度值分別轉換爲下面的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