java将两个图片中a,b的红绿蓝三个箭头交替变色一秒一次的代码
时间: 2023-06-02 19:02:21 浏览: 105
用Java语言实现颜色的变换
以下是Java将两个图片中a,b的红绿蓝三个箭头交替变色一秒一次的代码:
```java
import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;
public class ImageColorChanger {
public static void main(String[] args) {
try {
// 读取图片
BufferedImage img1 = ImageIO.read(new File("a.png"));
BufferedImage img2 = ImageIO.read(new File("b.png"));
// 定义颜色数组
Color[] colors = new Color[] { Color.RED, Color.GREEN, Color.BLUE };
// 定义初始颜色
int colorIndex = 0;
// 循环交替改变颜色
while (true) {
// 改变a图片颜色
for (int y = 0; y < img1.getHeight(); y++) {
for (int x = 0; x < img1.getWidth(); x++) {
Color oldColor = new Color(img1.getRGB(x, y));
Color newColor = new Color(colors[colorIndex].getRed(), colors[colorIndex].getGreen(),
colors[colorIndex].getBlue(), oldColor.getAlpha());
img1.setRGB(x, y, newColor.getRGB());
}
}
// 改变b图片颜色
for (int y = 0; y < img2.getHeight(); y++) {
for (int x = 0; x < img2.getWidth(); x++) {
Color oldColor = new Color(img2.getRGB(x, y));
Color newColor = new Color(colors[(colorIndex + 1) % 3].getRed(),
colors[(colorIndex + 1) % 3].getGreen(), colors[(colorIndex + 1) % 3].getBlue(),
oldColor.getAlpha());
img2.setRGB(x, y, newColor.getRGB());
}
}
// 保存图片
ImageIO.write(img1, "png", new File("a.png"));
ImageIO.write(img2, "png", new File("b.png"));
// 等待1秒
Thread.sleep(1000);
// 改变颜色索引
colorIndex = (colorIndex + 1) % 3;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
上述代码中,我们通过循环交替改变a和b两个图片的颜色,每秒钟改变一次,直到程序结束。具体的实现过程如下:
- 首先读取a和b两个图片。
- 定义颜色数组,包含红色、绿色、蓝色三种颜色。
- 定义初始颜色索引为0。
- 进入循环,先将a图片中的所有像素颜色改为当前颜色数组中的颜色,然后将b图片中的所有像素颜色改为下一个颜色数组中的颜色。注意,这里我们使用取余运算来实现循环。
- 保存修改后的a和b图片。
- 等待1秒钟。
- 改变颜色索引,进入下一次循环。
这样,我们就实现了将两个图片中a,b的红绿蓝三个箭头交替变色一秒一次的效果。
阅读全文