我有一个项目,其中一部分是使鱼(名为water.jpg)的图片更加明显。我只是不知道我需要更改哪些像素才能使其正常工作。我一次尝试只保留蓝色,绿色或红色,我一次尝试保留蓝色,绿色或红色的所有东西。我只需要知道我需要改变哪些图片。我所拥有的代码只是几种方法,它们都能正常运行,但它们是我必须以此水下方法为基础的。
public static void main(String[] args) {
Picture beach = new Picture("water.jpg");
beach.explore();
beach. (INSERT.METHOD.HERE);
beach.explore();
}
public void zeroBlue() {
Pixel[][] pixels = this.getPixels2D();
for (Pixel[] rowArray : pixels) {
for (Pixel pixelObj : rowArray) {
pixelObj.setBlue(0);
}
}
}
public void keepOnlyBlue() {
Pixel[][] pixels = this.getPixels2D();
for (Pixel[] rowArray : pixels) {
for (Pixel pixelObj : rowArray) {
pixelObj.setGreen(0);
pixelObj.setRed(0);
}
}
}
public void grayscale() {
Pixel[][] pixels = this.getPixels2D();
for (Pixel[] rowArray : pixels) {
for (Pixel pixelObj : rowArray) {
int avg = (pixelObj.getGreen() + pixelObj.getBlue() + pixelObj.getRed()) / 3;
pixelObj.setGreen(avg - 3);
pixelObj.setRed(avg - 3);
pixelObj.setBlue(avg - 3);
}
}
}
public void negate() {
Pixel[][] pixels = this.getPixels2D();
for (Pixel[] rowArray : pixels) {
for (Pixel pixelObj : rowArray) {
pixelObj.setGreen(255 - pixelObj.getGreen());
pixelObj.setRed(255 - pixelObj.getGreen());
pixelObj.setBlue(255 - pixelObj.getGreen());
}
}
}
答案 0 :(得分:0)
你能附上water.jpg的照片吗?它可能有助于理解您的问题。 你的否定也应该是这个......
public void negate() {
Pixel[][] pixels = this.getPixels2D();
for (Pixel[] rowArray : pixels) {
for (Pixel pixelObj : rowArray) {
pixelObj.setGreen(255 - pixelObj.getGreen());
pixelObj.setRed(255 - pixelObj.getRed());
pixelObj.setBlue(255 - pixelObj.getBlue());
}
}
}
还是我自己倒退了?