gpt4 book ai didi

java - 如何在 Java 中提取此图像的一部分?

转载 作者:IT老高 更新时间:2023-10-28 20:55:26 25 4
gpt4 key购买 nike

我有这个 Sprite 表:

Pacman sprites

如何读取此图像文件以提取其中的一部分用作sprite ?

最佳答案

如果 Sprite 区域读入 BufferedImage , getSubimage方法可用于获取 Sprite 表的子图像。

getSubimage 方法将采用 xy 以及 widthheight 所需的子图像,因此可以获得所需的 Sprite 。由于大多数 Sprite 似乎大小相同,我认为它们中的大多数可以通过嵌套的 for 循环检索以遍历大图像。

例如,如果使用 ImageIO 加载 Sprite 图像类(如read方法),每个 Sprite 的大小为10像素×10像素,其中5行5列的 Sprite ,可以通过以下方式获得:

BufferedImage bigImg = ImageIO.read(new File("sheet.png"));
// The above line throws an checked IOException which must be caught.

final int width = 10;
final int height = 10;
final int rows = 5;
final int cols = 5;
BufferedImage[] sprites = new BufferedImage[rows * cols];

for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
sprites[(i * cols) + j] = bigImg.getSubimage(
j * width,
i * height,
width,
height
);
}
}

当然,上面的代码只有在所有 Sprite 大小相同的情况下才有效,因此需要进行一些调整才能适用于给定的 Sprite 表。 (因为右上角的大小似乎与其他角落不同。)

关于java - 如何在 Java 中提取此图像的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/621835/

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