在 Java 中查找 PNG 图像中坐标处的颜色

发布于 2025-01-07 11:50:58 字数 103 浏览 1 评论 0原文

有了 PNG 图像的 URL(或该 url 中的数据,以 String 形式),如何使用 Java 查找一组坐标处的 RGB(或类似)值?

提前致谢!

With a URL of a PNG image (or the data at that url, in String form), how could one use Java to find the RGB (or similar) value at a set of coordinates?

Thanks in advance!

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

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

发布评论

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

评论(1

南冥有猫 2025-01-14 11:50:58

这个例子应该有你需要的一切:

要引用线程的相关部分:

File inputFile = new File("image.png");
BufferedImage bufferedImage = ImageIO.read(inputFile);
int w = bufferedImage.getWidth();
int h = bufferedImage.getHeight(null);

//Get Pixels
int [] rgbs = new int[w*h];
bufferedImage.getRGB(0, 0, w, h, rgbs, 0, w); //Get all pixels

然后要获取特定像素,请参阅文档:

即:

int pixel = rgbs[offset + (y-startY)*scansize + (x-startX)];

如果你只想要一个像素,可以使用getRGB(x, y)

即:

int pixel = bufferedImage.getRGB(x, y);

This example should have all you need:

To cite the relevant part of the thread:

File inputFile = new File("image.png");
BufferedImage bufferedImage = ImageIO.read(inputFile);
int w = bufferedImage.getWidth();
int h = bufferedImage.getHeight(null);

//Get Pixels
int [] rgbs = new int[w*h];
bufferedImage.getRGB(0, 0, w, h, rgbs, 0, w); //Get all pixels

and then to get a particular pixel, see the docs:

i.e.:

int pixel = rgbs[offset + (y-startY)*scansize + (x-startX)];

If you just want one pixel, you can use getRGB(x, y):

i.e.:

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