Java颜色未定义

标签 java colors

我正在尝试制作棕褐色效果,并且需要将某些颜色减少到一定百分比。我的编译器错误如下:

Error: The constructor java.awt.Color(double, double, double) is undefined

Error: The constructor java.awt.Color(int, int, double) is undefined

Error: The constructor java.awt.Color(int, int, double) is undefined

这是我的代码:

public void sepiaTint()
  {
    Pixel[] pixelArray = this.getPixels();
    for (int i = 0; i < pixelArray.length; i++)
    {
     Pixel pixelObj = pixelArray[i];
     int amountRed = pixelObj.getRed();
     int amountGreen = pixelObj.getGreen();
     int amountBlue = pixelObj.getBlue();

     if (amountRed < 60)
     {
       Color newColor = new Color(amountRed*0.9, amountGreen*0.9, amountBlue*0.9);
       pixelObj.setColor(newColor);
     }
     if (amountRed >= 60 && amountRed <190)
     {
       Color newColor = new Color(amountRed, amountGreen, amountBlue*0.8);
       pixelObj.setColor(newColor);
     }
     else
     {
       Color newColor = new Color(amountRed, amountGreen, amountBlue*0.9);
       pixelObj.setColor(newColor);
     }
    }
    this.repaint();
  }

最佳答案

Pixel.getRed() 返回一个整数,因此 Color(float, float, float) 对您来说毫无用处。您想要的是 Color(int, int, int) 构造函数。

0.9 被解释为 double,因此在计算值后必须再次将其转换为 int。

Color newColor = new Color((int)(amountRed*0.9), (int)(amountGreen*0.9), (int)(amountBlue*0.9));

关于Java颜色未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20140944/

相关文章:

Javascript:将图像中的颜色变成链接?

python - 将 numpy 数组中的值可视化为位图中的颜色

swift - 快速重新滚动随机数

java - 引入命名参数会破坏 jOOQ 查询

java - 在 M1 Apple Silicon 上运行时禁用 junit5 测试

java - Swing 中的事件处理(通过 JFrame 覆盖它)

Android - 仅更改 alpha TextView 的文本

java - ActionListener 和 JButton

java - 无效的字符串值 : '\xD0...." for the column . ...“。utf8 字符集尝试使用

java - jsp中的方法声明和java文件中的方法声明哪个性能更好