当我用 JUnit 测试我的代码时,出现以下错误:
java.lang.IllegalArgumentException: Color parameter outside of expected range: Red Green Blue
老实说,我不知道为什么。我的代码不是很长,所以我想发布它以获得更好的帮助。
BufferedImage img = ImageIO.read(f);
for (int w = 0; w < img.getWidth(); w++) {
for (int h = 0; h < img.getHeight(); h++) {
Color color = new Color(img.getRGB(w, h));
float greyscale = ((0.299f * color.getRed()) + (0.587f
* color.getGreen()) + (0.144f * color.getBlue()));
Color grey = new Color(greyscale, greyscale, greyscale);
img.setRGB(w, h, grey.getRGB());
当我运行 JUnit 测试时,eclipse 用
Color grey = new Color(greyscale, greyscale, greyscale);
所以,我想问题可能是,我使用浮点数,正如你所见,我重新计算了图像的红色、绿色和蓝色内容。
谁能帮我解决这个问题?