Загрузка текстуры из папки

У меня проблема с загрузкой JPEG на сферу. В настоящее время единственный способ, с помощью которого я смог заставить это работать, состоит в том, чтобы изображение было в том же пакете, что и загружаемый им класс. Проблема в том, что я не хочу, чтобы в одном пакете было более 500 текстур, смешанных с классами. Я бы предпочел, чтобы они были в папках и подпапках по организационным причинам.

Если текстура находится в том же пакете, это работает:

InputStream iStream = null;

    try
    {
        iStream = getClass().getResourceAsStream(imageFile);
        TextureData data = TextureIO.newTextureData(iStream, false, null);
        testTex[i] = TextureIO.newTexture(data);
        testTex[i].getImageTexCoords();
        testTex[i].setTexParameteri(GL2.GL_TEXTURE_MAG_FILTER, GL2.GL_LINEAR);
        testTex[i].setTexParameteri(GL2.GL_TEXTURE_MIN_FILTER, GL2.GL_NEAREST);
        iStream.close();
        ...

Метод, который берет изображение, принимает его в виде:

String[] texture = { "bar1.jpg", "bar2.jpg" }; // imageFile is whichever is called

Поскольку приведенный выше код работает отлично, опять же, недостатком является то, что каждая текстура должна храниться в том же пакете, что и класс, вызывающий текстуру. Но я хочу вызвать такую ​​текстуру из папки в моем проекте:

String[] texture = { "res/foo/bar2.jpg", "res/foo/bar2.jpg" };

Как бы я изменил приведенный выше код для поиска текстур в папке в проекте?

2 ответа

Решение
// note leading '/' - indicates 'search from root of class-path'
String[] texture = { "/res/foo/bar2.jpg", "/res/foo/bar2.jpg" };
// ...
URL iUrl = getClass().getResource(texture[0]);
TextureData data = TextureIO.newTextureData(iUrl, false, "jpg");

В этом примере мы используем перегруженную форму TextureIO Метод загрузки API в newTextureData(URL,boolean,String),

Я думаю, что ваша проблема только в том, что вы пропускаете косую черту перед разрешением. Это определенно будет работать:

this.getClass().getResource("/res/img.jpg");

пока пакет res находится в вашей папке src.

Другие вопросы по тегам