所以我做了这个程序,我希望它不能创建只有黑白的8 x 8尺寸的图像,但是它只显示白色,而不是随机分布黑白。这是我的代码。如果有人可以帮助那会很棒:D
package de.gamingengine.main;
import java.awt.Color;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.io.File;
import javax.imageio.ImageIO;
public class Main {
public static void main(String args[])throws IOException {
int width = 8;
int height = 8;
Color c = null;
BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
File f = null;
for(int y = 0; y < height; y++) {
for(int x = 0; x < width; x++) {
int blackorwhite = (int)Math.random()*10;
if(blackorwhite >= 5) {
c = Color.BLACK;
} else if(blackorwhite < 5){
c = Color.WHITE;
}
img.setRGB(x, y, c.getRGB());
}
}
try {
f = new File("C:\\Users\\Linus\\Desktop\\Out.png");
ImageIO.write(img, "png", f);
} catch (IOException e) {
System.out.println("Error: " + e);
}
}
}
最佳答案
问题是运算符的优先级。这里 :
(int) Math.random() * 10
首先,您将
Math.random()
的结果强制转换为int
。由于此方法从[0,1)
返回值,因此将其强制转换为int
,因此它始终为0,然后乘以10,但最后仍为0。将您的代码更改为:
int blackorwhite = (int) (Math.random() * 10);
关于java - 我想制作一个随机图像生成器,但是它不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56825653/