Class Pixmap

  • All Implemented Interfaces:
    Disposable

    public class Pixmap
    extends java.lang.Object
    implements Disposable

    A Pixmap represents an image in memory. It has a width and height expressed in pixels as well as a Pixmap.Format specifying the number and order of color components per pixel. Coordinates of pixels are specified with respect to the top left corner of the image, with the x-axis pointing to the right and the y-axis pointing downwards.

    By default all methods use blending. You can disable blending with setBlending(Blending), which may reduce blitting time by ~30%. The drawPixmap(Pixmap, int, int, int, int, int, int, int, int) method will scale and stretch the source image to a target image. There either nearest neighbour or bilinear filtering can be used.

    A Pixmap stores its data in native heap memory. It is mandatory to call dispose() when the pixmap is no longer needed, otherwise memory leaks will result

    • Constructor Detail

      • Pixmap

        public Pixmap​(int width,
                      int height,
                      Pixmap.Format format)
        Creates a new Pixmap instance with the given width, height and format.
        Parameters:
        width - the width in pixels
        height - the height in pixels
        format - the Pixmap.Format
      • Pixmap

        public Pixmap​(byte[] encodedData,
                      int offset,
                      int len)
        Creates a new Pixmap instance from the given encoded image data. The image can be encoded as JPEG, PNG or BMP. Not available on GWT backend.
        Parameters:
        encodedData - the encoded image data
        offset - the offset
        len - the length
      • Pixmap

        public Pixmap​(java.nio.ByteBuffer encodedData,
                      int offset,
                      int len)
        Creates a new Pixmap instance from the given encoded image data. The image can be encoded as JPEG, PNG or BMP. Not available on GWT backend.
        Parameters:
        encodedData - the encoded image data
        offset - the offset relative to the base address of encodedData
        len - the length
      • Pixmap

        public Pixmap​(java.nio.ByteBuffer encodedData)
        Creates a new Pixmap instance from the given encoded image data. The image can be encoded as JPEG, PNG or BMP. Not available on GWT backend. Offset is based on the position of the buffer. Length is based on the remaining bytes of the buffer.
        Parameters:
        encodedData - the encoded image data
      • Pixmap

        public Pixmap​(FileHandle file)
        Creates a new Pixmap instance from the given file. The file must be a Png, Jpeg or Bitmap. Paletted formats are not supported.
        Parameters:
        file - the FileHandle
      • Pixmap

        public Pixmap​(Gdx2DPixmap pixmap)
        Constructs a new Pixmap from a Gdx2DPixmap.
        Parameters:
        pixmap -
    • Method Detail

      • createFromFrameBuffer

        public static Pixmap createFromFrameBuffer​(int x,
                                                   int y,
                                                   int w,
                                                   int h)
        Creates a Pixmap from a part of the current framebuffer.
        Parameters:
        x - framebuffer region x
        y - framebuffer region y
        w - framebuffer region width
        h - framebuffer region height
        Returns:
        the pixmap
      • setColor

        public void setColor​(int color)
        Sets the color for the following drawing operations
        Parameters:
        color - the color, encoded as RGBA8888
      • setColor

        public void setColor​(float r,
                             float g,
                             float b,
                             float a)
        Sets the color for the following drawing operations.
        Parameters:
        r - The red component.
        g - The green component.
        b - The blue component.
        a - The alpha component.
      • setColor

        public void setColor​(Color color)
        Sets the color for the following drawing operations.
        Parameters:
        color - The color.
      • fill

        public void fill()
        Fills the complete bitmap with the currently set color.
      • drawLine

        public void drawLine​(int x,
                             int y,
                             int x2,
                             int y2)
        Draws a line between the given coordinates using the currently set color.
        Parameters:
        x - The x-coodinate of the first point
        y - The y-coordinate of the first point
        x2 - The x-coordinate of the first point
        y2 - The y-coordinate of the first point
      • drawRectangle

        public void drawRectangle​(int x,
                                  int y,
                                  int width,
                                  int height)
        Draws a rectangle outline starting at x, y extending by width to the right and by height downwards (y-axis points downwards) using the current color.
        Parameters:
        x - The x coordinate
        y - The y coordinate
        width - The width in pixels
        height - The height in pixels
      • drawPixmap

        public void drawPixmap​(Pixmap pixmap,
                               int x,
                               int y)
        Draws an area from another Pixmap to this Pixmap.
        Parameters:
        pixmap - The other Pixmap
        x - The target x-coordinate (top left corner)
        y - The target y-coordinate (top left corner)
      • drawPixmap

        public void drawPixmap​(Pixmap pixmap,
                               int x,
                               int y,
                               int srcx,
                               int srcy,
                               int srcWidth,
                               int srcHeight)
        Draws an area from another Pixmap to this Pixmap.
        Parameters:
        pixmap - The other Pixmap
        x - The target x-coordinate (top left corner)
        y - The target y-coordinate (top left corner)
        srcx - The source x-coordinate (top left corner)
        srcy - The source y-coordinate (top left corner);
        srcWidth - The width of the area from the other Pixmap in pixels
        srcHeight - The height of the area from the other Pixmap in pixels
      • drawPixmap

        public void drawPixmap​(Pixmap pixmap,
                               int srcx,
                               int srcy,
                               int srcWidth,
                               int srcHeight,
                               int dstx,
                               int dsty,
                               int dstWidth,
                               int dstHeight)
        Draws an area from another Pixmap to this Pixmap. This will automatically scale and stretch the source image to the specified target rectangle. Use setFilter(Filter) to specify the type of filtering to be used (nearest neighbour or bilinear).
        Parameters:
        pixmap - The other Pixmap
        srcx - The source x-coordinate (top left corner)
        srcy - The source y-coordinate (top left corner);
        srcWidth - The width of the area from the other Pixmap in pixels
        srcHeight - The height of the area from the other Pixmap in pixels
        dstx - The target x-coordinate (top left corner)
        dsty - The target y-coordinate (top left corner)
        dstWidth - The target width
        dstHeight - the target height
      • fillRectangle

        public void fillRectangle​(int x,
                                  int y,
                                  int width,
                                  int height)
        Fills a rectangle starting at x, y extending by width to the right and by height downwards (y-axis points downwards) using the current color.
        Parameters:
        x - The x coordinate
        y - The y coordinate
        width - The width in pixels
        height - The height in pixels
      • drawCircle

        public void drawCircle​(int x,
                               int y,
                               int radius)
        Draws a circle outline with the center at x,y and a radius using the current color and stroke width.
        Parameters:
        x - The x-coordinate of the center
        y - The y-coordinate of the center
        radius - The radius in pixels
      • fillCircle

        public void fillCircle​(int x,
                               int y,
                               int radius)
        Fills a circle with the center at x,y and a radius using the current color.
        Parameters:
        x - The x-coordinate of the center
        y - The y-coordinate of the center
        radius - The radius in pixels
      • fillTriangle

        public void fillTriangle​(int x1,
                                 int y1,
                                 int x2,
                                 int y2,
                                 int x3,
                                 int y3)
        Fills a triangle with vertices at x1,y1 and x2,y2 and x3,y3 using the current color.
        Parameters:
        x1 - The x-coordinate of vertex 1
        y1 - The y-coordinate of vertex 1
        x2 - The x-coordinate of vertex 2
        y2 - The y-coordinate of vertex 2
        x3 - The x-coordinate of vertex 3
        y3 - The y-coordinate of vertex 3
      • getPixel

        public int getPixel​(int x,
                            int y)
        Returns the 32-bit RGBA8888 value of the pixel at x, y. For Alpha formats the RGB components will be one.
        Parameters:
        x - The x-coordinate
        y - The y-coordinate
        Returns:
        The pixel color in RGBA8888 format.
      • getWidth

        public int getWidth()
        Returns:
        The width of the Pixmap in pixels.
      • getHeight

        public int getHeight()
        Returns:
        The height of the Pixmap in pixels.
      • dispose

        public void dispose()
        Releases all resources associated with this Pixmap.
        Specified by:
        dispose in interface Disposable
      • isDisposed

        public boolean isDisposed()
      • drawPixel

        public void drawPixel​(int x,
                              int y)
        Draws a pixel at the given location with the current color.
        Parameters:
        x - the x-coordinate
        y - the y-coordinate
      • drawPixel

        public void drawPixel​(int x,
                              int y,
                              int color)
        Draws a pixel at the given location with the given color.
        Parameters:
        x - the x-coordinate
        y - the y-coordinate
        color - the color in RGBA8888 format.
      • getPixels

        public java.nio.ByteBuffer getPixels()
        Returns the direct ByteBuffer holding the pixel data. For the format Alpha each value is encoded as a byte. For the format LuminanceAlpha the luminance is the first byte and the alpha is the second byte of the pixel. For the formats RGB888 and RGBA8888 the color components are stored in a single byte each in the order red, green, blue (alpha). For the formats RGB565 and RGBA4444 the pixel colors are stored in shorts in machine dependent order.
        Returns:
        the direct ByteBuffer holding the pixel data.
      • setPixels

        public void setPixels​(java.nio.ByteBuffer pixels)
        Sets pixels from a provided direct byte buffer.
        Parameters:
        pixels - Pixels to copy from, should be a direct ByteBuffer and match Pixmap data size (see getPixels()).