【问题标题】:Libgdx get Texture from Image or DrawableLibgdx 从 Image 或 Drawable 获取纹理
【发布时间】:2020-09-20 23:43:57
【问题描述】:
我想从图像中获取纹理数据,因此可以直接渲染它,但我没有看到直接的制作方法,谷歌搜索只显示相反的方式。
我能够获得 Drawable,但界面没有指定确切的纹理数据,所以我看不到将 Image Actor 转换为 Texture。
我想要实现的是拥有画笔,其中画笔的数据存储在ImageButton 的图像中。因此,单击ImageButton 后,用户将能够根据按钮中存储的图像在屏幕上绘图。
我怎样才能做到这一点?
【问题讨论】:
标签:
java
image
libgdx
textures
【解决方案1】:
深入挖掘后,我在forums上找到了解决方案:
您最好的选择可能是将纹理绘制到 FrameBuffer 中
1:1的比例,那么你可以使用
ScreenUtils.getFrameBufferPixmap
从 FrameBuffer 复制像素图并根据需要调整大小。
类似这样的:
fb.begin();
sb.begin();
sb.draw(texture, 0, 0);
sb.end();
Pixmap pm = ScreenUtils.getFrameBufferPixmap(0, 0, width, height);
fb.end();
它不完全是纹理,但它正是我所需要的:从可绘制对象中提取的像素数据。
经过深思熟虑后,我决定将纹理数据冗余存储在Imagebuttons 旁边,并直接查询存储的数据,而不是使用ImageButton 作为一种容器,它更容易不应该。