Class Pixmap
- java.lang.Object
-
- com.badlogic.gdx.graphics.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.Formatspecifying 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%. ThedrawPixmap(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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classPixmap.BlendingBlending functions to be set withsetBlending(com.badlogic.gdx.graphics.Pixmap.Blending).static interfacePixmap.DownloadPixmapResponseListenerResponse listener fordownloadFromUrl(String, DownloadPixmapResponseListener)static classPixmap.FilterFilters to be used withdrawPixmap(Pixmap, int, int, int, int, int, int, int, int).static classPixmap.FormatDifferent pixel formats.
-
Constructor Summary
Constructors Constructor Description Pixmap(byte[] encodedData, int offset, int len)Creates a new Pixmap instance from the given encoded image data.Pixmap(int width, int height, Pixmap.Format format)Creates a new Pixmap instance with the given width, height and format.Pixmap(FileHandle file)Creates a new Pixmap instance from the given file.Pixmap(Gdx2DPixmap pixmap)Constructs a new Pixmap from aGdx2DPixmap.Pixmap(java.nio.ByteBuffer encodedData)Creates a new Pixmap instance from the given encoded image data.Pixmap(java.nio.ByteBuffer encodedData, int offset, int len)Creates a new Pixmap instance from the given encoded image data.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static PixmapcreateFromFrameBuffer(int x, int y, int w, int h)Creates a Pixmap from a part of the current framebuffer.voiddispose()Releases all resources associated with this Pixmap.static voiddownloadFromUrl(java.lang.String url, Pixmap.DownloadPixmapResponseListener responseListener)Downloads an image from http(s) url and passes it as aPixmapto the specifiedPixmap.DownloadPixmapResponseListenervoiddrawCircle(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.voiddrawLine(int x, int y, int x2, int y2)Draws a line between the given coordinates using the currently set color.voiddrawPixel(int x, int y)Draws a pixel at the given location with the current color.voiddrawPixel(int x, int y, int color)Draws a pixel at the given location with the given color.voiddrawPixmap(Pixmap pixmap, int x, int y)Draws an area from another Pixmap to this Pixmap.voiddrawPixmap(Pixmap pixmap, int x, int y, int srcx, int srcy, int srcWidth, int srcHeight)Draws an area from another Pixmap to this Pixmap.voiddrawPixmap(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.voiddrawRectangle(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.voidfill()Fills the complete bitmap with the currently set color.voidfillCircle(int x, int y, int radius)Fills a circle with the center at x,y and a radius using the current color.voidfillRectangle(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.voidfillTriangle(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.Pixmap.BlendinggetBlending()Pixmap.FiltergetFilter()Pixmap.FormatgetFormat()intgetGLFormat()Returns the OpenGL ES format of this Pixmap.intgetGLInternalFormat()Returns the OpenGL ES format of this Pixmap.intgetGLType()Returns the OpenGL ES type of this Pixmap.intgetHeight()intgetPixel(int x, int y)Returns the 32-bit RGBA8888 value of the pixel at x, y.java.nio.ByteBuffergetPixels()Returns the direct ByteBuffer holding the pixel data.intgetWidth()booleanisDisposed()voidsetBlending(Pixmap.Blending blending)Sets the type ofPixmap.Blendingto be used for all operations.voidsetColor(float r, float g, float b, float a)Sets the color for the following drawing operations.voidsetColor(int color)Sets the color for the following drawing operationsvoidsetColor(Color color)Sets the color for the following drawing operations.voidsetFilter(Pixmap.Filter filter)Sets the type of interpolationPixmap.Filterto be used in conjunction withdrawPixmap(Pixmap, int, int, int, int, int, int, int, int).voidsetPixels(java.nio.ByteBuffer pixels)Sets pixels from a provided direct byte buffer.
-
-
-
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 pixelsheight- the height in pixelsformat- thePixmap.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 dataoffset- the offsetlen- 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 dataoffset- the offset relative to the base address of encodedDatalen- 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- theFileHandle
-
Pixmap
public Pixmap(Gdx2DPixmap pixmap)
Constructs a new Pixmap from aGdx2DPixmap.- 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 xy- framebuffer region yw- framebuffer region widthh- framebuffer region height- Returns:
- the pixmap
-
setBlending
public void setBlending(Pixmap.Blending blending)
Sets the type ofPixmap.Blendingto be used for all operations. Default isPixmap.Blending.SourceOver.- Parameters:
blending- the blending type
-
setFilter
public void setFilter(Pixmap.Filter filter)
Sets the type of interpolationPixmap.Filterto be used in conjunction withdrawPixmap(Pixmap, int, int, int, int, int, int, int, int).- Parameters:
filter- the filter.
-
downloadFromUrl
public static void downloadFromUrl(java.lang.String url, Pixmap.DownloadPixmapResponseListener responseListener)Downloads an image from http(s) url and passes it as aPixmapto the specifiedPixmap.DownloadPixmapResponseListener- Parameters:
url- http url to download the image fromresponseListener- the listener to call once the image is available as aPixmap
-
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 pointy- The y-coordinate of the first pointx2- The x-coordinate of the first pointy2- 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 coordinatey- The y coordinatewidth- The width in pixelsheight- 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 Pixmapx- 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 Pixmapx- 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 pixelssrcHeight- 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. UsesetFilter(Filter)to specify the type of filtering to be used (nearest neighbour or bilinear).- Parameters:
pixmap- The other Pixmapsrcx- 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 pixelssrcHeight- The height of the area from the other Pixmap in pixelsdstx- The target x-coordinate (top left corner)dsty- The target y-coordinate (top left corner)dstWidth- The target widthdstHeight- 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 coordinatey- The y coordinatewidth- The width in pixelsheight- 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 centery- The y-coordinate of the centerradius- 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 centery- The y-coordinate of the centerradius- 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 1y1- The y-coordinate of vertex 1x2- The x-coordinate of vertex 2y2- The y-coordinate of vertex 2x3- The x-coordinate of vertex 3y3- 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-coordinatey- 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:
disposein interfaceDisposable
-
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-coordinatey- 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-coordinatey- the y-coordinatecolor- the color in RGBA8888 format.
-
getGLFormat
public int getGLFormat()
Returns the OpenGL ES format of this Pixmap. Used as the seventh parameter toGL20.glTexImage2D(int, int, int, int, int, int, int, int, java.nio.Buffer).- Returns:
- one of GL_ALPHA, GL_RGB, GL_RGBA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
-
getGLInternalFormat
public int getGLInternalFormat()
Returns the OpenGL ES format of this Pixmap. Used as the third parameter toGL20.glTexImage2D(int, int, int, int, int, int, int, int, java.nio.Buffer).- Returns:
- one of GL_ALPHA, GL_RGB, GL_RGBA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.
-
getGLType
public int getGLType()
Returns the OpenGL ES type of this Pixmap. Used as the eighth parameter toGL20.glTexImage2D(int, int, int, int, int, int, int, int, java.nio.Buffer).- Returns:
- one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_4_4_4_4
-
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
ByteBufferholding 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 (seegetPixels()).
-
getFormat
public Pixmap.Format getFormat()
- Returns:
- the
Pixmap.Formatof this Pixmap.
-
getBlending
public Pixmap.Blending getBlending()
- Returns:
- the currently set
Pixmap.Blending
-
getFilter
public Pixmap.Filter getFilter()
- Returns:
- the currently set
Pixmap.Filter
-
-