Java 操纵像素颜色以创建日落
我必须创建一个程序来操纵图像的颜色像素,以在背景中创建日落的外观。我知道要做到这一点,我必须增加图片中红色的数量,但每当我对其进行编程时,都会导致一个错误,即:Java 操纵像素颜色以创建日落,java,image,for-loop,pixel,pixels,Java,Image,For Loop,Pixel,Pixels,我必须创建一个程序来操纵图像的颜色像素,以在背景中创建日落的外观。我知道要做到这一点,我必须增加图片中红色的数量,但每当我对其进行编程时,都会导致一个错误,即: java.lang.IllegalArgumentException: Color parameter outside of expected range: Red(in java.awt.Color) 我的程序如下所示: import java.awt.*; public class TrueColors2 { public
java.lang.IllegalArgumentException:
Color parameter outside of expected range: Red(in java.awt.Color)
我的程序如下所示:
import java.awt.*;
public class TrueColors2
{
public static void main(String[] args)
{
Picture pictureObj = new Picture("WashingtonMonument.png");
//picutreObj.explore();
int redValue = 0; int greenValue = 0; int blueValue = 0;
Pixel targetPixel = new Pixel(pictureObj, 0, 0);
Color pixelColor = null;
for(int y = 0; y < pictureObj.getHeight(); y++)
{
for(int x = 0; x < pictureObj.getWidth(); x++)
{
targetPixel = pictureObj.getPixel(x,y);
pixelColor = targetPixel.getColor();
redValue = pixelColor.getRed();
greenValue = pixelColor.getGreen();
blueValue = pixelColor.getBlue();
pixelColor = new Color(redValue, greenValue, blueValue);
pixelColor = new Color(100 + pixelColor.getRed(),
pixelColor.getGreen(),
pixelColor.getBlue());
targetPixel.setColor(pixelColor);
}
}
pictureObj.write("ThirdWashingtonMonument.png");
pictureObj.show();
}
}
import java.awt.*;
公共类TrueColors 2
{
公共静态void main(字符串[]args)
{
Picture pictureObj=新图片(“washingtonmonment.png”);
//picutreObj.explore();
int redValue=0;int greenValue=0;int blueValue=0;
像素targetPixel=新像素(pictureObj,0,0);
颜色像素颜色=空;
对于(int y=0;y
有人能帮我找出问题所在,并帮我找出如何创造日落的效果吗?
谢谢当您在红色值上加100时,您可能在某个点上超过了最大值255。在添加100之前,应该考虑检查<代码> PixelCuff.GETRED()/CUTE的当前值。如果图片周围有多个不同的红色值,会怎么样?@我相信会有。你必须决定你想用什么算法来达到想要的效果。我只是指出,无论你做什么决定,你都必须确保在提供红色值时不超过255。正如已经指出的,你超出了允许的“红色”组成部分。您可以将其更改为新颜色(Math.min(255100+pixelColor.getRed(),…),但是。。。我不确定这是否是理想的效果。只是让整个画面稍微红一点看起来不像日落,但是。。。像一幅略带红色的画。如果您的问题是如何创建日落效果(而不是为什么会收到错误),那么您应该详细说明这一部分。