Java 如何生成随机图案并将其转换为图像?
我现在正在做一个游戏。我有多个用户,每个用户都有一个id(UUID)。我希望使用这个id作为一个键来生成一个随机模式,然后为那个玩家生成一个图像Java 如何生成随机图案并将其转换为图像?,java,image,Java,Image,我现在正在做一个游戏。我有多个用户,每个用户都有一个id(UUID)。我希望使用这个id作为一个键来生成一个随机模式,然后为那个玩家生成一个图像 boolean[] booleanPlayerID = BSUtility.bytesToBooleans(playerID.getBytes(UTF_8)); WritableImage image = new WritableImage(50, 50); PixelWriter writer = image.getPixelWriter(); in
boolean[] booleanPlayerID = BSUtility.bytesToBooleans(playerID.getBytes(UTF_8));
WritableImage image = new WritableImage(50, 50);
PixelWriter writer = image.getPixelWriter();
int booleanIndex = 0;
for(int y = 0; 50 > y; y++){
for(int x = 0; 50 > x; x++){
if(booleanIndex >= booleanPlayerID.length){
booleanIndex = 0;
}
if(booleanPlayerID[booleanIndex]){
writer.setColor(x, y, Color.BLACK);
}
booleanIndex++;
}
}
假设图像将是50x50。。。我一直在做的是,我采取球员的id,转换为布尔数组,循环通过图像像素,也循环通过布尔数组,如果布尔值为真,然后设置像素颜色为黑色。if语句是为了避免索引越界(我知道我可能应该将布尔数组转换为与图像中的像素数相同的长度)
这确实产生了一些什么样的模式,但老实说,这是一个非常糟糕的模式。这些模式通常彼此非常相似。我想知道是否有人可以提供如何做得更好的提示/示例。由于我的研究很少,我真的找不到太多。然而,我确实找到了我希望获得的模式,我相信它们被称为缠结模式。我真的希望每个用户都有自己独特的图像/模式,但很明显,如果他们有些相似,但不相同,这是很好的。老实说,我不知道这是否可能
如果你需要一个完整的例子,我可以替换上面的代码。尽管上面的代码应该是一个非常简单的例子(唯一缺少的是生成用户ID并将其从字节转换为布尔数组)。您所说的是
IDENTICON
实际上,我不知道它们是如何工作的,但我知道它们对唯一文本使用某种散列,并使用该散列生成图像
这里有两个网站,我发现谁提供源代码,所以如果你有兴趣,你可以看看代码,并从那里提取任何有用的信息
PS.代码是JavaScript的,在一个网站上也是.NET和PHP的。正是我想要的。非常感谢你。