gpt4 book ai didi

java - 如何在java中创建一个新的灰度(BufferedImage.TYPE_BYTE_GRAY)图像?

转载 作者:太空宇宙 更新时间:2023-11-04 11:01:09 32 4
gpt4 key购买 nike

我想创建一个灰度图像,但问题是如何指定像素的值(0-255)并在读取同一图像时读取它。

     BufferedImage img = new BufferedImage(width, height , BufferedImage.TYPE_BYTE_GRAY);
File file = null;
//create random image pixel by pixel
for(int yHeight = 0; yHeight < height; yHeight++){
for(int xWidth = 0; xWidth < width; xWidth++){
img.setRGB(xWidth, yHeight, rgb);//here what values to specify
//for rgb (0-255)
}
}

//write image
try{
file = new File("D:\\Output.png");
ImageIO.write(img, "png", file);

}catch(IOException e){
System.out.println("Error: " + e);
}

为了读取相同的图像,我怎样才能获得相同的指定像素值。

private static void marchThroughImage(BufferedImage image) {
int w = image.getWidth();
int h = image.getHeight();

for (int i = 0; i < h; i++) {
for (int j = 0; j < w; j++) {
int pixel = image.getRGB(j, i);
}
}
}

最佳答案

您的问题有两个不同的部分:

  • 首先要在 Java 中读取/写入图像,您应该使用 Java.imageio 使用这个简单的代码

    BufferedImage image = javax.imageio.ImageIO.read(new File("path/to/the/image")) ;boolean write = javax.imageio.ImageIO.write(image, "png", new File("where/to/write/the/image")) ;

  • 然后,要访问/修改图像中的像素,您应该使用 getSample/setSample 访问栅格,或者如果您需要性能,则可以直接访问 DataBuffer。阅读我在这个问题中的回答: Efficient access to image pixels in Java

关于java - 如何在java中创建一个新的灰度(BufferedImage.TYPE_BYTE_GRAY)图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46877592/

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