gpt4 book ai didi

java - 如何截取图像 (.png) 的一部分并将其作为纹理存储在 libGDX 中

转载 作者:行者123 更新时间:2023-11-29 04:24:33 25 4
gpt4 key购买 nike

所以标题几乎说明了一切......

我正在开发一个 libGDX 项目,该项目需要我截取不同图像的一部分(例如:从 2000x2000 图像中取出 100x100 block )并将其存储为 libGDX 纹理。

最终目标是获取此纹理并用它填充多边形。

我知道我可以手动格式化这些图像,但这并不好。将一直使用新图像。每个部分都有很多部分。

我一直在查看 libGDX api,但一无所获。要么我找错了地方,要么我找错了东西。只要朝着正确的方向轻推,我就会很高兴。

谢谢

最佳答案

正如 icarumbas 所说,您可以使用 TextureRegion。 TextureRegion 将保存对存储区域的纹理的引用,以及纹理中图像的宽度、高度、x 位置和 y 位置。无需将图像拆分为单独的纹理,因为 TextureRegion 旨在存储纹理区域而无需创建更多纹理。

例子:

Texture wholeImage = new Texture("imagePath");
TextureRegion firstRegion = new TextureRegion(wholeImage,0,0,50,50); // gets the region from the 0,0 point of the whole image and is 50 x 50px
TextureRegion secondRegion = new TextureRegion(wholeImage,0,50,50,50); // gets the region from the 0,50 point of the whole image and is 50 x 50px
TextureRegion topRegion = new TextureRegion(wholeImage,50,0,100,50); // gets the region from the 50,0 point of the whole image and is 100 x 50px

然后可以像使用 spritebatch 绘制普通纹理一样绘制这些纹理

batch.begin();
batch.draw(firstRegion, 30,30);
batch.draw(secondRegion , 130,30);
batch.draw(topRegion , 130,130);
batch.end();

使用 TextureRegions 时的一个常见问题是人们使用 getTexture() 方法时。此方法用于获取整个纹理而不是定义的区域。

关于java - 如何截取图像 (.png) 的一部分并将其作为纹理存储在 libGDX 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47026187/

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