This class describes an image in memory.
Image data in a pixbuf is stored in memory in uncompressed, packed format.
Rows in the image are stored top to bottom, and in each row pixels are stored
from left to right. There may be padding at the end of a row. The "rowstride"
value of a pixbuf, as returned by getRowstride(), indicates the number of
bytes between rows.
Pixbuf
public Pixbuf(Handle handle)
Constructs a Pixbuf from a handle to native resources. This should only
be used internally by java-gnome.
Pixbuf
public Pixbuf(String filename)
throws FileNotFoundException,
JGException
Construct a new Pixbuf from an image file.
filename
- The name of the image file.
Pixbuf
public Pixbuf(String filename,
int width,
int height,
boolean preserveAspect)
throws FileNotFoundException,
JGException
Creates a new Pixbuf by loading an image from a file. The file format is
detected automatically. The image will be scaled to fit in the requested
size, preserving the image's aspect ration if reserveAspect is set to
true.
filename
- width
- height
- preserveAspect
-
Pixbuf
public Pixbuf(byte[] data)
Create a new Pixbuf by parsing XPM data in memory.
Pixbuf
public Pixbuf(byte[] data,
boolean copyPixels)
throws JGException
Create a new Pixbuf from a flat representation that is suitable for
storing as inline data in a program. This is useful if you want to ship a
program with images but don't want to depend on any external files.
Pixbuf
public Pixbuf(Colorspace colorSpace,
boolean hasAlpha,
int bitsPerSample,
int width,
int height)
Create a new Pixbuf object and allocate a buffer to it.
colorSpace
- hasAlpha
- bitsPerSample
- width
- height
-
Pixbuf
public Pixbuf(Drawable drawable,
Colormap colormap,
int srcX,
int srcY,
int destX,
int destY,
int width,
int height)
Transfers image data from a Drawable and converts it to an RGB(A)
representation inside this Pixbuf. In other words, copies image data from
a server-side drawable to a client-side RGB(A) buffer. This allows you to
efficiently read individual pixels on the client side.
drawable
- colormap
- srcX
- srcY
- destX
- destY
- width
- height
-
Pixbuf
public Pixbuf(Image image,
Colormap colormap,
int srcX,
int srcY,
int destX,
int destY,
int width,
int height)
Transfers image data from an Image and converts it to an RGB(A)
representation inside this Pixbuf.
image
- colormap
- srcX
- srcY
- destX
- destY
- width
- height
-
Pixbuf
public Pixbuf(Pixbuf srcPixbuf,
int srcX,
int srcY,
int width,
int height)
Create a new Pixbuf which represents a sub-region of another Pixbuf. The
new Pixbuf shares its pixels with the original so writing to one affects
both.
srcPixbuf
- srcX
- srcY
- width
- height
-
addAlpha
public Pixbuf addAlpha(boolean substituteColor,
int red,
int green,
int blue)
Adds alpha channel to this Pixbuf and returns the results. If this Pixbuf
already has an alpha channel, the channel values are copied into the
newly created Pixbuf; otherwise the alpha channel is initialized to 255
(full opacity).
If
substituteColor is true the color specified by (red, green,
blue) will be assigned zero opacity. That is, if you pass (255, 255, 255)
for the substitute color all white pixels will become fully transparent.
substituteColor
- red
- green
- blue
-
composite
public Pixbuf composite(int width,
int height,
InterpType type,
int overallAlpha,
int checkSize,
int color1,
int color2)
Creates a new Pixbuf by scaling this Pixbuf to the provided width and
height and compositing the results with a checkboard of colors color1 and
color2.
width
- height
- type
- overallAlpha
- checkSize
- color1
- color2
-
composite
public Pixbuf composite(Pixbuf dest,
int destX,
int destY,
int destWidth,
int destHeight,
double offsetX,
double offsetY,
double scaleX,
double scaleY,
InterpType type,
int overallAlpha)
Creates a transformation of this image by scaling scaleX and scaleY then
translating by offsetX and offsetY. This gives an image in the
coordinates of the destination pixbuf. The rectangle (destX, destY,
destWidth, destHeight) is then composited onto the corresponding
rectangle of the original destination image.
dest
- destX
- destY
- destWidth
- destHeight
- offsetX
- offsetY
- scaleX
- scaleY
- type
- overallAlpha
-
composite
public Pixbuf composite(Pixbuf dest,
int destX,
int destY,
int destWidth,
int destHeight,
double offsetX,
double offsetY,
double scaleX,
double scaleY,
InterpType type,
int overallAlpha,
int checkX,
int checkY,
int checkSize,
int color1,
int color2)
Creates a transformation of this image by scaling scaleX and scaleY then
translating by offsetX and offsetY then composites the rectangle (destX,
destY, destWidth, destHeight) of the resulting image with a checkboard of
the colors color1 and color2 and renders it onto the destination image.
dest
- destX
- destY
- destWidth
- destHeight
- offsetX
- offsetY
- scaleX
- scaleY
- type
- overallAlpha
- checkX
- checkY
- checkSize
- color1
- color2
-
copy
public Pixbuf copy()
Return a copy of this Pixbuf.
copyArea
public void copyArea(int x,
int y,
int width,
int height,
Pixbuf dest,
int destX,
int destY)
Copies a rectangle area from this Pixbuf to the destination Pixbuf.
Conversion of Pixbuf formats is done automatically.
x
- y
- width
- height
- dest
- destX
- destY
-
fill
public void fill(int pixel)
Clears the Pixbuf to a given RGBA value, converting the RGBA value into
the Pixbuf's pixel format. The alpha will be ignored if the Pixbuf
doesn't have an alpha channel.
flip
public Pixbuf flip(boolean horizontal)
Flips a Pixbuf horizontally or vertically and returns the result in a new
Pixbuf.
getBitsPerSample
public int getBitsPerSample()
getColorspace
public Colorspace getColorspace()
Returns the Colorspace for the Pixbuf.
getFileInformation
public static PixbufFormat getFileInformation(String filename)
getNumChannels
public int getNumChannels()
Returns the number of channels for the Pixbuf.
getOption
public String getOption(String key)
getPixbufFromHandle
public static Pixbuf getPixbufFromHandle(Handle hndl)
Constructs a Pixbuf from a handle to native resources. This should only
be used internally by Java-Gnome. This should be used in preference to
Pixbuf(Handle)
unless the call is being made by a subclass of
Pixbuf from its own Handle constructor.
getPixels
public byte[] getPixels()
Returns the pixel data for the Pixbuf
getRowstride
public int getRowstride()
Returns the rowstride which is the number of bytes between the start of a
row and the start of the next row.
hasAlpha
public boolean hasAlpha()
height
public int height()
Return the height of the pixbuf.
rotate
public Pixbuf rotate(PixbufRotation direction)
Rotate this pixbuf and return the results as a new Pixbuf.
saturateAndPixelate
public Pixbuf saturateAndPixelate(Pixbuf dest,
double saturation,
boolean pixelate)
Modifies saturation and optionally pixelates this Pixbuf placing the
result in the destination Pixbuf. The Pixbufs may be the same Pixbuf with
no ill effects. If saturation is 1.0 then saturation is not changed. If
it's less than 1.0, saturation is reduced (the image is darkened); if
greater than 1.0, saturation is increased (the image is brightened). If
pixelate is true, then pixels are faded in a checkerboard pattern to
create a pixelated image. The Pixbufs must have the same image format,
size, and rowstride.
dest
- saturation
- pixelate
-
save
public void save(String filename,
String type,
String[] optionKeys,
String[] optionValues)
throws JGException
Saves a Pixbuf to a file in the format type provided. By default the only
supported formats are "jpeg", "png", or "ico".
filename
- type
- optionKeys
- optionValues
-
saveToBuffer
public byte[] saveToBuffer(String type,
String[] optionKeys,
String[] optionValues)
throws JGException
Saves a Pixbuf to a buffer in the format type provided. The only
supported formats are "jpeg", "png", or "ico". The possible errors
contained in the JGException are those described in PixbufError.
type
- optionKeys
- optionValues
-
scale
public Pixbuf scale(int width,
int height,
InterpType itype)
Create a new pixbuf from an existing pixbuf scaled to the size provided.
scale
public Pixbuf scale(Pixbuf dest,
int destX,
int destY,
int destWidth,
int destHeight,
double offsetX,
double offsetY,
double scaleX,
double scaleY,
InterpType type)
Creates a transformation of this Pixbuf by scaling scaleX and scaleY then
translating by offsetX and offsetY, then renders the rectangle of the
resulting image onto the destination image replacing the previous
contents.
dest
- destX
- destY
- destWidth
- destHeight
- offsetX
- offsetY
- scaleX
- scaleY
- type
-
width
public int width()
Return the width of the pixbuf.