高度图相关问题

问题描述 投票:0回答:1

我正在尝试用Java创建一个使用Perlin噪声来制作黑白高度图的程序。我尝试使用here的代码来实现噪音。我使用下面的代码尝试使噪声成为高度图,但我得到的是像this而不是获得高度图。

BufferedImage img;
img = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_INT_RGB );

int[] pixel = ((DataBufferInt)img.getRaster().getDataBuffer()).getData();

for(int i = 0; i < (WIDTH*HEIGHT); i++)
{
    pixel[i] = (int) perlin.PerlinNoise(i, i);   
} 
java image awt bufferedimage perlin-noise
1个回答
2
投票

你可以按如下方式使用BufferedImage.TYPE_BYTE_GRAY:创建int[]类型的噪声数组,其中数组中的数字应该在[0,255]之间。我们假设这个像素数组被称为pixelData,那么以下应该可以工作

BufferedImage img = new BufferedImage(WIDTH, HEIGHT, 
                                     BufferedImage.TYPE_BYTE_GRAY);
img.getRaster().setPixels(0, 0, WIDTH, HEIGHT, pixelData);

File output = new File("image.jpg");
try {
  ImageIO.write(img, "jpg", output);
} catch (IOException e) {
  e.printStackTrace();
}

如果你想有一个完整的例子,那么请看下面的问题:Issue with Perlin Noise in Java

© www.soinside.com 2019 - 2024. All rights reserved.