org.gnu.gdk

Class Pixbuf

public class Pixbuf extends GObject

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.

Constructor Summary
Pixbuf(Handle handle)
Constructs a Pixbuf from a handle to native resources.
Pixbuf(String filename)
Construct a new Pixbuf from an image file.
Pixbuf(String filename, int width, int height, boolean preserveAspect)
Creates a new Pixbuf by loading an image from a file.
Pixbuf(Colorspace colorSpace, boolean hasAlpha, int bitsPerSample, int width, int height)
Create a new Pixbuf object and allocate a buffer to it.
Pixbuf(byte[] data)
Create a new Pixbuf by parsing XPM data in memory.
Pixbuf(byte[] data, boolean copyPixels)
Create a new Pixbuf from a flat representation that is suitable for storing as inline data in a program.
Pixbuf(Pixbuf srcPixbuf, int srcX, int srcY, int width, int height)
Create a new Pixbuf which represents a sub-region of another Pixbuf.
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.
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.
Method Summary
PixbufaddAlpha(boolean substituteColor, int red, int green, int blue)
Adds alpha channel to this Pixbuf and returns the results.
Pixbufcomposite(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.
Pixbufcomposite(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.
Pixbufcomposite(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.
Pixbufcopy()
Return a copy of this Pixbuf.
voidcopyArea(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.
voidfill(int pixel)
Clears the Pixbuf to a given RGBA value, converting the RGBA value into the Pixbuf's pixel format.
Pixbufflip(boolean horizontal)
Flips a Pixbuf horizontally or vertically and returns the result in a new Pixbuf.
intgetBitsPerSample()
ColorspacegetColorspace()
Returns the Colorspace for the Pixbuf.
static PixbufFormatgetFileInformation(String filename)
intgetNumChannels()
Returns the number of channels for the Pixbuf.
StringgetOption(String key)
static PixbufgetPixbufFromHandle(Handle hndl)
Constructs a Pixbuf from a handle to native resources.
byte[]getPixels()
Returns the pixel data for the Pixbuf
intgetRowstride()
Returns the rowstride which is the number of bytes between the start of a row and the start of the next row.
static TypegetType()
Retrieve the runtime type used by the GLib library.
booleanhasAlpha()
intheight()
Return the height of the pixbuf.
Pixbufrotate(PixbufRotation direction)
Rotate this pixbuf and return the results as a new Pixbuf.
PixbufsaturateAndPixelate(Pixbuf dest, double saturation, boolean pixelate)
Modifies saturation and optionally pixelates this Pixbuf placing the result in the destination Pixbuf.
voidsave(String filename, String type, String[] optionKeys, String[] optionValues)
Saves a Pixbuf to a file in the format type provided.
byte[]saveToBuffer(String type, String[] optionKeys, String[] optionValues)
Saves a Pixbuf to a buffer in the format type provided.
Pixbufscale(int width, int height, InterpType itype)
Create a new pixbuf from an existing pixbuf scaled to the size provided.
Pixbufscale(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.
intwidth()
Return the width of the pixbuf.

Constructor Detail

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)
Construct a new Pixbuf from an image file.

Parameters: filename The name of the image file.

Throws: FileNotFoundException if filename doesn't exist.

Pixbuf

public Pixbuf(String filename, int width, int height, boolean preserveAspect)
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.

Parameters: filename width height preserveAspect

Throws: FileNotFoundException JGException

Pixbuf

public Pixbuf(Colorspace colorSpace, boolean hasAlpha, int bitsPerSample, int width, int height)
Create a new Pixbuf object and allocate a buffer to it.

Parameters: colorSpace hasAlpha bitsPerSample width height

Pixbuf

public Pixbuf(byte[] data)
Create a new Pixbuf by parsing XPM data in memory.

Parameters: data

Pixbuf

public Pixbuf(byte[] data, boolean copyPixels)
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.

Parameters: data copyPixels

Throws: JGException

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.

Parameters: srcPixbuf srcX srcY 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.

Parameters: 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.

Parameters: image colormap srcX srcY destX destY width height

Method Detail

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.

Parameters: 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.

Parameters: 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.

Parameters: 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.

Parameters: 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.

Parameters: 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.

Parameters: pixel

flip

public Pixbuf flip(boolean horizontal)
Flips a Pixbuf horizontally or vertically and returns the result in a new Pixbuf.

Parameters: horizontal

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 {@link #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.

getType

public static Type getType()
Retrieve the runtime type used by the GLib library.

hasAlpha

public boolean hasAlpha()

height

public int height()
Return the height of the pixbuf.

Returns: The height

rotate

public Pixbuf rotate(PixbufRotation direction)
Rotate this pixbuf and return the results as a new Pixbuf.

Parameters: direction

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.

Parameters: dest saturation pixelate

save

public void save(String filename, String type, String[] optionKeys, String[] optionValues)
Saves a Pixbuf to a file in the format type provided. By default the only supported formats are "jpeg", "png", or "ico".

Parameters: filename type optionKeys optionValues

Throws: JGException

saveToBuffer

public byte[] saveToBuffer(String type, String[] optionKeys, String[] optionValues)
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.

Parameters: type optionKeys optionValues

Throws: JGException

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.

Parameters: dest destX destY destWidth destHeight offsetX offsetY scaleX scaleY type

width

public int width()
Return the width of the pixbuf.

Returns: The width