Расширение Java возвращает растровое изображение (изображение) в виде байтового массива в виде строки, и мне нужно отобразить изображение в моей игре. Как? - PullRequest
0 голосов
/ 27 октября 2019

, поэтому у меня есть расширение Java (код Java: https://pastebin.com/cpwf5LzT). Он имеет 1 функцию, а функция имеет 1 аргумент, который является String и называется fname. И он возвращает String. Функция должна получить файл по пути fname и, если это файл изображения, получить его как Bitmap. затем я изменяю Bitmap на байтовый массив (byte[]), а затем байтовый массив на String и возвращает его.

Расширение работает нормально, но моя проблема в том, что я не знаюкак изменить переменную String, которую функция возвращает в байтовый массив и байтовый массив, чтобы спрайтовать или вставлять их на поверхность.

Так что любой, кто обладает знаниями об этом, может помочь мне с этим? Спасибо!

ОБНОВЛЕНИЕ # 1:

Итак, мне удалось добавить строку вывода в буфер и нарисовать ее, но так получилось по сравнению с исходным изображением: image

То есть, если я создаю новый спрайт, рисую спрайт на поверхности и получаю растровое изображение поверхности в буфер, получается хорошо ...

Это код, который я использовал: https://pastebin.com/KhPhVr5p (функция load_image является функцией расширения java) (функция draw_buffer - это функция, которая использует функции этого расширения и должна рисовать буфер)

Может, это из-за расширения buffer_getpixel? Что я могу использовать, чтобы заменить его?

1 Ответ

0 голосов
/ 28 октября 2019

Здесь есть как минимум пара проблем,

  • буфер _ * _ поверхностные функции ожидают необработанные данные RGBA, а не файл PNG.
  • Вы возвращаете содержимое в виде строки,которые могут иметь проблемы в зависимости от того, как обрабатывается NUL-завершение. Если ваш файл обрезан (после того, как вы исправите формат), попробуйте вместо этого кодировать его как base64.
...