LibGDX从Base64 PNG ByteArrayInputStream创建纹理

8
我刚刚决定从Slick2D转换到LibGDX。然而,为了能够将我的游戏移植到LibGDX中,我需要帮助理解如何从我的游戏数据文件中创建LibGDX纹理。
我的游戏数据文件是加密的,图像是用base64编码的,所以我可以将它们全部保存在一个txt文件中。如何从ByteArrayInputStream中创建LibGDX纹理?
在Slick2D中,我将base64字符串转换为bufferedimage。但是我不想为LibGDX这样做,因为我可能很快就要在Android上使用它。
编辑:我刚刚弄明白了,有点。我是这样做的:
   Texture bucket;
    String base64 = "base64 string too long to paste"
    byte[] decodedBytes = Base64Coder.decode(base64);
    bucket = new Texture(new Pixmap(decodedBytes, 0, decodedBytes.length));

然而,现在图像垂直翻转了...我有什么遗漏吗?

欢迎来到 Stack Overflow。与许多讨论版不同,Stack Overflow 以单个问题和答案为导向。请将您的“编辑”作为答案发布(自己回答问题是可以的)。请参阅 http://stackoverflow.com/faq#howtoask。 - P.T.
谢谢。我会这样做的。 以下是翻译的文本: “声望值低于10的用户在提问后8小时内无法回答自己的问题。您可以在7小时内回答。在那之前,请使用评论或编辑您的问题。” - Ike Yousuf
这个链接应该会帮助你解决旋转的部分问题:https://dev59.com/1WDVa4cB1Zd3GeqPhdsK - Display Name is missing
是的,我想到了这个方法,但我希望纹理是正面朝上创建的。翻转字节数组会是正确的方式吗? - Ike Yousuf
已解决。我创建了一个精灵而不是纹理,并翻转了它。 - Ike Yousuf
1个回答

2
Texture bucket;
String base64 = "base64 string too long to paste"
byte[] decodedBytes = Base64Coder.decode(base64);
bucket = new Texture(new Pixmap(decodedBytes, 0, decodedBytes.length));

这对我有用。

它被翻转了,因为我将OrthgraphicsCamera更改为在左上角具有0,0。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接