Search code examples
javalibgdxtexturespixmap

How to rotate a pixmap by 90º to draw to a texture in libgdx?


I need to rotate a Pixmap by 90 degrees. I have seen an answer that achieves a flipped Pixmap. I need to rotate images that are in portrait orientation to landscape already on the Pixmap-level to later create textures out of them.


Solution

  • similar to the flip pixmap method I achieved a 90º rotated Pixmap like this:

    private Pixmap rotatePixmap (Pixmap srcPix){
        final int width = srcPix.getWidth();
        final int height = srcPix.getHeight();
        Pixmap rotatedPix = new Pixmap(height, width, srcPix.getFormat());
    
        for (int x = 0; x < height; x++) {
            for (int y = 0; y < width; y++) {
                rotatedPix.drawPixel(x, y, srcPix.getPixel(y, x));
            }
        }
    
        srcPix.dispose();
        return rotatedPix;
    }
    

    Note that also width & height get swapped after the 90º rotation