(Java LibGDX) How do I resize my textures in LibGDX?
Asked Answered
G

2

13

I have been fooling around with LibGDX for a while now, and wanted to easily port my programs to different systems. I have a background texture, which I want to scale to the currently used resolution. The image is 1920x1080, how do I change it to the currently used resolution at runtime?

Guiscard answered 2/6, 2013 at 19:4 Comment(1)
There are lots of ways to answer this question that depend on how you're going to render the texture. Can you provide more, specific details on what you're doing?Swaddle
S
18

If you want to scale at drawing time use:

Pixmap pixmap200 = new Pixmap(Gdx.files.internal("200x200.png"));
Pixmap pixmap100 = new Pixmap(100, 100, pixmap200.getFormat());
pixmap100.drawPixmap(pixmap200,
        0, 0, pixmap200.getWidth(), pixmap200.getHeight(),
        0, 0, pixmap100.getWidth(), pixmap100.getHeight()
);
Texture texture = new Texture(pixmap100);
pixmap200.dispose();
pixmap100.dispose();

From:

https://www.snip2code.com/Snippet/774713/LibGDX-Resize-texture-on-load

Stevens answered 14/7, 2016 at 19:8 Comment(0)
C
11
    batch.begin();
    batch.draw(yourtexture, 0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight());
    batch.end();

Using the camera viewport also works:

    batch.begin();
    batch.draw(yourtexture, 0, 0, cam.viewportWidth, cam.viewportHeight);
    batch.end();
Caseose answered 19/6, 2013 at 2:5 Comment(3)
That is not really scalling, is just shrinking the texture when is drawn, poor devices would have problems with this..Gittle
Boldijar Paul, can you suggest a better approach?Ikey
@Boldijar Paul, can you suggest a better approach?Ikey

© 2022 - 2024 — McMap. All rights reserved.