Java 在';红色';RGB值创建日落效果,请帮助。(爪哇)

Java 在';红色';RGB值创建日落效果,请帮助。(爪哇),java,colors,rgb,pixel,Java,Colors,Rgb,Pixel,好的,我想要一个程序,一行一行地通过图片,并在红色值(RGB)中添加一定量,以创建日落效果。唯一的问题是,当你得到红色、绿色和蓝色的不同值时,我不能,比方说,在红色值上加上50来获得日落效果。下面的代码只是负责循环行和更改像素值的部分 for(int y=0; y < sunsetPic.getHeight(); y++) { for(int x = 0; x < sunsetPic.getWidth();

好的,我想要一个程序,一行一行地通过图片,并在红色值(RGB)中添加一定量,以创建日落效果。唯一的问题是,当你得到红色、绿色和蓝色的不同值时,我不能,比方说,在红色值上加上50来获得日落效果。下面的代码只是负责循环行和更改像素值的部分

for(int y=0; y < sunsetPic.getHeight(); y++)                  
        {
            for(int x = 0; x < sunsetPic.getWidth(); x++)             
            {
                targetPixel = sunsetPic.getPixel(x,y);                 
                pixelColor = targetPixel.getColor();                    

                redValue = pixelColor.getRed();
                greenValue = pixelColor.getGreen();
                blueValue = pixelColor.getBlue();

                pixelColor = new Color(redVlue + 50, greenValue, blueValue);
                targetPixel.setColor(pixelColor);                       
            }
        }
for(int y=0;y

正如你所看到的,我不能仅仅向redValue添加50来创建日落效果。有人能帮我做一个让我的日落效果的方法吗?

要实现日落效果,你需要做的不仅仅是加一点红色。很可能你也需要去掉一些绿色和蓝色。这些去除很可能是成比例的去除,保留一定比例的原始颜色。最灵活的方法是使用一个或多个颜色矩阵。这样,您可以根据输入颜色的线性组合独立调整每个输出颜色。通常情况下,包括颜色,这意味着大多数颜色矩阵都是4x5,第五个元素是一个常量,无论输入是多少,都可以加或减


,并且根据您对逼真度的需要,您可以随意多次调整变换矩阵,直到获得所需的视觉效果。

如果可以,请将图像加载到Gimp或Photoshop等绘图程序中,并使用该程序编辑和预览颜色更改。一旦你得到你想要的外观,使用你得到的RGB的百分比,这些将是你的运行时更改


我建议使用乘数而不是加法,我建议不要将红色增加到1.0以上,而是遵循Edwin Buck的想法,将绿色和蓝色相乘。

这更像是一个图形问题,而不是一个编程问题。将其增加当前值的一小部分会更现实吗?