Java 扩展将位图(图像)作为字节数组返回为字符串,我需要在我的游戏中显示图像。如何?

标签 java arrays bitmap surface game-maker

所以我有一个java扩展(java代码:https://pastebin.com/cpwf5LzT)。它有 1 个函数,该函数有 1 个参数,该参数是一个名为 fnameString。它返回一个String。该函数应从 fname 路径获取文件,如果它是图像文件,则将其获取为 Bitmap。然后我将 Bitmap 更改为字节数组( byte[] ),然后将字节数组更改为 String 并返回它。

扩展工作正常,但我的问题是我不知道如何更改函数返回的 String 变量为字节数组,并将字节数组更改为 Sprite 或将其粘贴到表面上.

那么任何对此类事情有一定了解的人都可以帮助我吗?谢谢!

更新 #1:

所以我设法将输出字符串添加到缓冲区中并绘制它,但与原始图像相比,结果是这样的:image

如果我制作一个新的 Sprite ,将 Sprite 绘制到表面并将表面的位图获取到缓冲区,结果很好......

这是我使用的代码:https://pastebin.com/KhPhVr5p (load_image函数是java扩展的函数) (draw_buffer函数是一个使用this extension's functions并且应该绘制缓冲区的函数)

也许是因为 buffer_getpixel 扩展?我可以用什么来代替它?

最佳答案

这里至少有几个问题,

  • buffer_*_surface 函数需要原始 RGBA 数据,而不是 PNG 文件。
  • 您将以字符串形式返回内容,这可能会出现问题,具体取决于 NUL 终止的处理方式。如果您的文件被切断(在修复格式之后),请尝试将其编码为 base64。

关于Java 扩展将位图(图像)作为字节数组返回为字符串,我需要在我的游戏中显示图像。如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58579643/

相关文章:

java - 如何将文件转换为 JSON 接受的字符串?

JavaFX 线程卡住

python - 如何找到 pandas.DataFrame 中值的位置?

c# - 在 C# 中减小图像大小

java - 如何使用 bash 脚本将所有 jar 结果打印到文件中

c# - 不安全结构中的只读数组字段

javascript - 将数组传递给函数 - PG 和 NodeJS

java - Android:从字节数组或文件获取高度/宽度

linux - 使用BioAPI转换比较两张指纹位图图像

java - Play 框架中配置最大线程的指南