#java #lwjgl #stb-image
#java #lwjgl #stb-image
Вопрос:
bi = ImageIO.read(new File(filename));
width = bi.getWidth();
height = bi.getHeight();
ByteBuffer data = stbi_load("/sprites/" filename, width, height, 0, 0);
По какой-то причине stbi_load
не принимает второй, третий и четвертый параметры в методе, даже если все они являются допустимыми целыми числами. Он выдает следующую ошибку
The method stbi_load(ByteBuffer, IntBuffer, IntBuffer, IntBuffer, int) in the type STBImage is not applicable for the arguments (String, int, int, int, int).
Есть идеи, почему это происходит? Любые ответы приветствуются
Комментарии:
1. если я правильно помню, вы должны использовать путь к файловой системе, а не claspath
Ответ №1:
Не могли бы вы показать сигнатуру stbi_load
метода.
Возможно, он ожидает аргументы типов ByteBuffer и IntBuffer, а не типов String
и int
, как вы указали.
Комментарии:
1. Метод stbi_load(ByteBuffer, IntBuffer, IntBuffer, IntBuffer, IntBuffer, int) в типе STBImage не применим для аргументов (String, int, int, int, int, int). Это сигнатура метода, поэтому он ожидает типы u, упомянутые выше, но почему он запрашивает их вместо обычной строки и целых чисел?
2. Потому что класс STBImage был разработан именно таким образом.