Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何生成随机图案并将其转换为图像?_Java_Image - Fatal编程技术网

Java 如何生成随机图案并将其转换为图像?

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

我现在正在做一个游戏。我有多个用户,每个用户都有一个id(UUID)。我希望使用这个id作为一个键来生成一个随机模式,然后为那个玩家生成一个图像

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的。

    正是我想要的。非常感谢你。