((DataBufferInt) image.getRaster().getDataBuffer()).getData() 返回的数组中只包含 0 吗?

huangapple go评论51阅读模式
英文:

Why ((DataBufferInt) image.getRaster().getDataBuffer()).getData() return the array which contains only 0's?

问题

你的代码和输出看起来没有明显的错误。你已经成功地读取了一张图像,并获得了像素数组。输出显示像素数组的前几个元素都是0,这可能是因为图片的内容导致的。如果图片的内容本身包含大量的黑色像素,那么这个输出就是正常的。要检查图像的内容,你可以尝试使用其他工具来查看图像的像素信息,以确认图像本身是否有问题。

此外,你提到文件正常,这也是一个好的迹象。只要你能够成功读取图像并获得像素数组,你的代码在这方面就没有问题。

如果你有更具体的问题或需要进一步的帮助,可以提出。

英文:

I have the next code:

BufferedImage image = null;
try {
	BufferedImage img = ImageIO.read(new File("src/img.jpg"));
	image = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_ARGB);
} catch (IOException e) {
	System.out.println(e);
}

// get array of image
final int[] pixels = ((DataBufferInt) image.getRaster().getDataBuffer()).getData();

System.out.println(Arrays.toString(pixels));

And I get next output:

[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ... ]

What am I doing wrong?

P.S. And yes, everything is OK with my file. Because, when I run sout(image) get something like that BufferedImage@6f7fd0e6: type = 2 DirectColorModel: rmask=ff0000 gmask=ff00 bmask=ff amask=ff000000 IntegerInterleavedRaster: width = 1280 height = 720 #Bands = 4 xOff = 0 yOff = 0 dataOffset[0] 0

答案1

得分: 1

你的代码基本上是这样的:

image = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_ARGB);
final int[] pixels = ((DataBufferInt) image.getRaster().getDataBuffer()).getData();

你从文件系统中读取的图像存储在img而不是image中,你从未将任何内容绘制到image中。

英文:

Essentially your code is

image = new BufferedImage(img.getWidth(), img.getHeight(), BufferedImage.TYPE_INT_ARGB);
final int[] pixels = ((DataBufferInt) image.getRaster().getDataBuffer()).getData();

You are never drawing anything into image. (The image you read from the filesystem is stored in img not image.)

huangapple
  • 本文由 发表于 2023年5月31日 23:35:06
  • 转载请务必保留本文链接:https://go.coder-hub.com/76375169.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定