如何获取图像文件并将其转换为光栅,然后访问其数据?

发布于 2024-12-11 19:13:59 字数 42 浏览 0 评论 0 原文

如何获取图像文件并将其转换为光栅,然后逐像素访问其数据(RBG 值)?

How do I take an image file and convert it into a raster and then access its data (RBG values) pixel by pixel?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

明月夜 2024-12-18 19:13:59
BufferedImage img = ImageIO.read(new File("lol"));
int rgb = img.getRGB(x, y);

Color c = new Color(rgb);

现在您可以使用 Color.getRed()、getGreen()、getBlue() 和 getAlpha() 来获取不同的值

BufferedImage img = ImageIO.read(new File("lol"));
int rgb = img.getRGB(x, y);

Color c = new Color(rgb);

Now you can use Color.getRed(), getGreen(), getBlue() and getAlpha() to get the different values

苏佲洛 2024-12-18 19:13:59
BufferedImage image = ImageIO.read(new File(myFilename));
int pixel = image.getRGB(0, 0); // Top left pixel.
// Access the color components, valued 0-255.
int alpha = (pixel >>> 24) & 0xff; // If applicable to image format.
int r = (pixel >>> 16) & 0xff;
int g = (pixel >>> 8) & 0xff;
int b = pixel & 0xff;

[编辑] 请注意,@Sibbo 的答案是正确的,并且可以方便地使用 Color 类颜色访问器方法;然而,正如我所演示的那样,直接通过位操作提取颜色可能会快得多,因为它避免了重复构造函数调用的开销。

BufferedImage image = ImageIO.read(new File(myFilename));
int pixel = image.getRGB(0, 0); // Top left pixel.
// Access the color components, valued 0-255.
int alpha = (pixel >>> 24) & 0xff; // If applicable to image format.
int r = (pixel >>> 16) & 0xff;
int g = (pixel >>> 8) & 0xff;
int b = pixel & 0xff;

[Edit] Note that @Sibbo's answer is correct and conveniently uses the Color class color accessor methods; however, extracting the colors directly via bit manipulation as I have demonstrated will likely be considerably faster since it avoids the overhead of repeated constructor calls.

oО清风挽发oО 2024-12-18 19:13:59

使用 ImageIO.readBufferedImage,然后使用其中一个getData方法获取图像的光栅。其中,您将找到获取像素数据的方法。

Use ImageIO.read to read the image file in as a BufferedImage, and then use one of the getData methods to obtain the image's Raster. And therein, you'll find methods to obtain pixel data.

黯然#的苍凉 2024-12-18 19:13:59

使用 rasters .getData 方法完成将图像转换为栅格后,不要使用 rgb 值

Don't use the rgb values after you completed turning the image into a raster use the rasters .getData method

迷迭香的记忆 2024-12-18 19:13:59

使用这个:

Image img.getRGB(x, y);

Color c = new Color(rgb);

Use this:

Image img.getRGB(x, y);

Color c = new Color(rgb);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文