如何解码base64 fbx嵌入式图像

diego.martinez

我有一个带有嵌入式图像内容的FBX。该图像位于Base64中。我读取了块并将其成功解码。当图像更大时,问题就来了。FBX将图像分成2行,看起来像base64,但是我不知道如何解码。

  1. 我尝试在base64中解码这两行并将它们连接起来,然后再解压缩png,但是png损坏了。
  2. 我尝试连接Base64字符串,但是它不起作用,因为end = Trail这种方式是错误的。
  3. 我试图先解压缩第一行(正确的png,但仅图像的一半),然后将第二行解压缩为位图,但是由于第二行没有标题,因此图像无效。

内容:“ iVBORw0KGgoAAAANSUhEUg ... AAAAA =“,” AAAAAAAAAAAAAAAAAA ... AD // wEAAP /// noceab5flIAAAAASUVORK5CYII =“

如您所见,第一行是PNG标头(iVBOR ...),但第二行没有标头。第一行和第二行以base64结尾,因此我怀疑它们应分别解码。

有人知道怎么做吗?

复制方法:打开3ds Max,创建一个平面,将图像作为纹理应用,另存为具有嵌入媒体的ascii FBX。

大小足以拆分的PNG

克雷格·费德

我下载并安装了3ds max的最新版本。我创建了平面并添加了PNG图像作为纹理,然后使用嵌入式媒体将其导出为fbx文件(默认版本)为ascii格式。

我看到多行以base64编码的ascii。第一行包含一个PNG标头,我的解码器将其识别为PNG文件。随后的行不包含PNG标头,并被解码为BIN​​文件。所有这些都与您描述的完全一样。

但是,在我的情况下,就像您期望的那样,简单地将解码的片段连接起来就可以正确地重新生成原始的PNG文件。

我使用站点对所有单个块进行解码,然后在将它们串联之前将它们下载为二进制文件。

我使用开源二进制编辑器HexEdit来检查这些块并将它们连接起来。

由于此过程按预期工作,因此我推测您的Base64解码或串联一定有问题。您是否编写了自己的解码例程?如果是这样,也许您忘了丢弃与填充字符相对应的任何字节(终端===用于使最终字节数均匀地被每一行的三分之二)。注意,这些字节必须在解码后而不是在解码后丢弃。几乎所有解码库都为您执行隐形操作。

如果这不能解决您的问题,请发布您正在使用的PNG文件,输出的第一行和第二行的完整Base64以及用于解码和连接它们的例程。如果您这样做,我们将更加仔细地帮助您解决问题。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章