public class Pixmap extends 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
Modifier and Type | Class and Description |
---|---|
static class |
Pixmap.Blending
Blending functions to be set with
setBlending(com.badlogic.gdx.graphics.Pixmap.Blending) . |
static interface |
Pixmap.DownloadPixmapResponseListener
Response listener for
downloadFromUrl(String, DownloadPixmapResponseListener) |
static class |
Pixmap.Filter
Filters to be used with
drawPixmap(Pixmap, int, int, int, int, int, int, int, int) . |
static class |
Pixmap.Format
Different pixel formats.
|
Constructor and Description |
---|
Pixmap(byte[] encodedData,
int offset,
int len)
Creates a new Pixmap instance from the given encoded image data.
|
Pixmap(FileHandle file)
Creates a new Pixmap instance from the given file.
|
Pixmap(Gdx2DPixmap pixmap)
Constructs a new Pixmap from a
Gdx2DPixmap . |
Pixmap(int width,
int height,
Pixmap.Format format)
Creates a new Pixmap instance with the given width, height and format.
|
Modifier and Type | Method and Description |
---|---|
static Pixmap |
createFromFrameBuffer(int x,
int y,
int w,
int h)
Creates a Pixmap from a part of the current framebuffer.
|
void |
dispose()
Releases all resources associated with this Pixmap.
|
static void |
downloadFromUrl(String url,
Pixmap.DownloadPixmapResponseListener responseListener)
Downloads an image from http(s) url and passes it as a
Pixmap to the specified Pixmap.DownloadPixmapResponseListener |
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.
|
void |
drawLine(int x,
int y,
int x2,
int y2)
Draws a line between the given coordinates using the currently set color.
|
void |
drawPixel(int x,
int y)
Draws a pixel at the given location with the current color.
|
void |
drawPixel(int x,
int y,
int color)
Draws a pixel at the given location with the given color.
|
void |
drawPixmap(Pixmap pixmap,
int x,
int y)
Draws an area from another Pixmap to this Pixmap.
|
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.
|
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.
|
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.
|
void |
fill()
Fills the complete bitmap with the currently set color.
|
void |
fillCircle(int x,
int y,
int radius)
Fills a circle with the center at x,y and a radius using the current color.
|
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.
|
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.
|
Pixmap.Blending |
getBlending() |
Pixmap.Filter |
getFilter() |
Pixmap.Format |
getFormat() |
int |
getGLFormat()
Returns the OpenGL ES format of this Pixmap.
|
int |
getGLInternalFormat()
Returns the OpenGL ES format of this Pixmap.
|
int |
getGLType()
Returns the OpenGL ES type of this Pixmap.
|
int |
getHeight() |
int |
getPixel(int x,
int y)
Returns the 32-bit RGBA8888 value of the pixel at x, y.
|
ByteBuffer |
getPixels()
Returns the direct ByteBuffer holding the pixel data.
|
int |
getWidth() |
boolean |
isDisposed() |
void |
setBlending(Pixmap.Blending blending)
Sets the type of
Pixmap.Blending to be used for all operations. |
void |
setColor(Color color)
Sets the color for the following drawing operations.
|
void |
setColor(float r,
float g,
float b,
float a)
Sets the color for the following drawing operations.
|
void |
setColor(int color)
Sets the color for the following drawing operations
|
void |
setFilter(Pixmap.Filter filter)
Sets the type of interpolation
Pixmap.Filter to be used in conjunction with
drawPixmap(Pixmap, int, int, int, int, int, int, int, int) . |
void |
setPixels(ByteBuffer pixels)
Sets pixels from a provided byte buffer.
|
public Pixmap(int width, int height, Pixmap.Format format)
width
- the width in pixelsheight
- the height in pixelsformat
- the Pixmap.Format
public Pixmap(byte[] encodedData, int offset, int len)
encodedData
- the encoded image dataoffset
- the offsetlen
- the lengthpublic Pixmap(FileHandle file)
file
- the FileHandle
public Pixmap(Gdx2DPixmap pixmap)
Gdx2DPixmap
.pixmap
- public static Pixmap createFromFrameBuffer(int x, int y, int w, int h)
x
- framebuffer region xy
- framebuffer region yw
- framebuffer region widthh
- framebuffer region heightpublic void setBlending(Pixmap.Blending blending)
Pixmap.Blending
to be used for all operations. Default is Pixmap.Blending.SourceOver
.blending
- the blending typepublic void setFilter(Pixmap.Filter filter)
Pixmap.Filter
to be used in conjunction with
drawPixmap(Pixmap, int, int, int, int, int, int, int, int)
.filter
- the filter.public static void downloadFromUrl(String url, Pixmap.DownloadPixmapResponseListener responseListener)
Pixmap
to the specified Pixmap.DownloadPixmapResponseListener
url
- http url to download the image fromresponseListener
- the listener to call once the image is available as a Pixmap
public void setColor(int color)
color
- the color, encoded as RGBA8888public void setColor(float r, float g, float b, float a)
r
- The red component.g
- The green component.b
- The blue component.a
- The alpha component.public void setColor(Color color)
color
- The color.public void fill()
public void drawLine(int x, int y, int x2, int y2)
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 pointpublic void drawRectangle(int x, int y, int width, int height)
x
- The x coordinatey
- The y coordinatewidth
- The width in pixelsheight
- The height in pixelspublic void drawPixmap(Pixmap pixmap, int x, int y)
pixmap
- The other Pixmapx
- The target x-coordinate (top left corner)y
- The target y-coordinate (top left corner)public void drawPixmap(Pixmap pixmap, int x, int y, int srcx, int srcy, int srcWidth, int srcHeight)
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 pixelspublic void drawPixmap(Pixmap pixmap, int srcx, int srcy, int srcWidth, int srcHeight, int dstx, int dsty, int dstWidth, int dstHeight)
setFilter(Filter)
to specify the type of filtering to be used (nearest
neighbour or bilinear).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 heightpublic void fillRectangle(int x, int y, int width, int height)
x
- The x coordinatey
- The y coordinatewidth
- The width in pixelsheight
- The height in pixelspublic void drawCircle(int x, int y, int radius)
x
- The x-coordinate of the centery
- The y-coordinate of the centerradius
- The radius in pixelspublic void fillCircle(int x, int y, int radius)
x
- The x-coordinate of the centery
- The y-coordinate of the centerradius
- The radius in pixelspublic void fillTriangle(int x1, int y1, int x2, int y2, int x3, int y3)
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 3public int getPixel(int x, int y)
x
- The x-coordinatey
- The y-coordinatepublic int getWidth()
public int getHeight()
public void dispose()
dispose
in interface Disposable
public boolean isDisposed()
public void drawPixel(int x, int y)
x
- the x-coordinatey
- the y-coordinatepublic void drawPixel(int x, int y, int color)
x
- the x-coordinatey
- the y-coordinatecolor
- the color in RGBA8888 format.public int getGLFormat()
GL20.glTexImage2D(int, int, int, int, int, int, int, int, java.nio.Buffer)
.public int getGLInternalFormat()
GL20.glTexImage2D(int, int, int, int, int, int, int, int, java.nio.Buffer)
.public int getGLType()
GL20.glTexImage2D(int, int, int, int, int, int, int, int, java.nio.Buffer)
.public ByteBuffer getPixels()
ByteBuffer
holding the pixel data.public void setPixels(ByteBuffer pixels)
pixels
- Pixels to copy from, should match Pixmap data size (see getPixels()
).public Pixmap.Format getFormat()
Pixmap.Format
of this Pixmap.public Pixmap.Blending getBlending()
Pixmap.Blending
public Pixmap.Filter getFilter()
Pixmap.Filter
Copyright © 2021. All rights reserved.