gpt4 book ai didi

java - 从随机数据创建位图文件

转载 作者:行者123 更新时间:2023-11-30 06:15:57 25 4
gpt4 key购买 nike

如何将随机数据的二维数组转换为位图?我正在做的是使用菱形方 block 算法创建高度图 - 它工作得很好 - 但我希望能够可视化结果以用于测试和调试目的。我认为最好的方法是将结果生成为灰度位图。

我看过很多读取和写入位图数据的示例(即,将图像读取到字节缓冲区并再次读取),但没有任何内容可以解释如何获取随机数据并使用它创建图像。我想要做的就是获取数组的每个值并将其转换为灰度像素。

例如:

data[0][0] = 98, then pixel (0,0) would be RGB (98,98,98)
data[0][1] = 220, then pixel (0,1) would be RGB (220,220,220)

我的随机值已经在 0 到 255 之间(含)。

最佳答案

这是一种相当快速的方法。您必须将数据展平为宽度*高度的 3 倍的一维数组才能使用此方法。我用一个二维数据数组对它进行了测试,每个位置都填充了 Math.random()

int width = data.length;
int height = data[0].length;

int[] flattenedData = new int[width*height*3];
BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
int ind = 0;
for (int i = 0; i < width; i++)
{
for (int j = 0; j < height; j++)
{
greyShade = data[i][j];
flattenedData[ind + j*3] = greyShade;
flattenedData[ind + j*3+1] = greyShade;
flattenedData[ind + j*3+2] = greyShade;

}
ind += height*3;
}

img.getRaster().setPixels(0, 0, 100, 100, flattenedData);

JLabel jLabel = new JLabel(new ImageIcon(img));

JPanel jPanel = new JPanel();
jPanel.add(jLabel);
JFrame r = new JFrame();
r.add(jPanel);
r.show();

关于java - 从随机数据创建位图文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28154236/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com