org.gnu.gdk
Class Pixbuf

java.lang.Object
  extended by org.gnu.glib.Struct
      extended by org.gnu.glib.GObject
          extended by org.gnu.gdk.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(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(Colorspace colorSpace, boolean hasAlpha, int bitsPerSample, int width, int height)
          Create a new Pixbuf object and allocate a buffer to it.
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(org.gnu.glib.Handle handle)
          Constructs a Pixbuf from a handle to native resources.
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.
Pixbuf(Pixbuf srcPixbuf, int srcX, int srcY, int width, int height)
          Create a new Pixbuf which represents a sub-region of another Pixbuf.
Pixbuf(java.lang.String filename)
          Construct a new Pixbuf from an image file.
Pixbuf(java.lang.String filename, int width, int height, boolean preserveAspect)
          Creates a new Pixbuf by loading an image from a file.
 
Method Summary
 Pixbuf addAlpha(boolean substituteColor, int red, int green, int blue)
          Adds alpha channel to this Pixbuf and returns the results.
 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.
 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.
 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.
 Pixbuf copy()
          Return a copy of this Pixbuf.
 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.
 void fill(int pixel)
          Clears the Pixbuf to a given RGBA value, converting the RGBA value into the Pixbuf's pixel format.
 Pixbuf flip(boolean horizontal)
          Flips a Pixbuf horizontally or vertically and returns the result in a new Pixbuf.
 int getBitsPerSample()
           
 Colorspace getColorspace()
          Returns the Colorspace for the Pixbuf.
static PixbufFormat getFileInformation(java.lang.String filename)
           
 int getNumChannels()
          Returns the number of channels for the Pixbuf.
 java.lang.String getOption(java.lang.String key)
           
static Pixbuf getPixbufFromHandle(org.gnu.glib.Handle hndl)
          Constructs a Pixbuf from a handle to native resources.
 byte[] getPixels()
          Returns the pixel data for the Pixbuf
 int getRowstride()
          Returns the rowstride which is the number of bytes between the start of a row and the start of the next row.
static Type getType()
          Retrieve the runtime type used by the GLib library.
 boolean hasAlpha()
           
 int height()
          Return the height of the pixbuf.
 Pixbuf rotate(PixbufRotation direction)
          Rotate this pixbuf and return the results as a new Pixbuf.
 Pixbuf saturateAndPixelate(Pixbuf dest, double saturation, boolean pixelate)
          Modifies saturation and optionally pixelates this Pixbuf placing the result in the destination Pixbuf.
 void save(java.lang.String filename, java.lang.String type, java.lang.String[] optionKeys, java.lang.String[] optionValues)
          Saves a Pixbuf to a file in the format type provided.
 byte[] saveToBuffer(java.lang.String type, java.lang.String[] optionKeys, java.lang.String[] optionValues)
          Saves a Pixbuf to a buffer in the format type provided.
 Pixbuf scale(int width, int height, InterpType itype)
          Create a new pixbuf from an existing pixbuf scaled to the size provided.
 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.
 int width()
          Return the width of the pixbuf.
 
Methods inherited from class org.gnu.glib.GObject
addEventHandler, addEventHandler, addEventHandler, addEventHandler, addEventHandler, addEventHandler, addEventHandler, addListener, collect, freezeNotify, getBooleanProperty, getData, getDoubleProperty, getEventListenerClass, getEventType, getFloatProperty, getGObjectFromHandle, getIntProperty, getJavaObjectProperty, getLongProperty, getPixbufProperty, getProperty, getStringProperty, hasProperty, notify, removeEventHandler, removeListener, setBooleanProperty, setData, setDoubleProperty, setFloatProperty, setIntProperty, setJavaObjectProperty, setLongProperty, setPixbufProperty, setProperty, setStringProperty, thawNotify
 
Methods inherited from class org.gnu.glib.Struct
equals, getHandle, getNullHandle, hashCode
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Pixbuf

public Pixbuf(org.gnu.glib.Handle handle)
Constructs a Pixbuf from a handle to native resources. This should only be used internally by java-gnome.


Pixbuf

public Pixbuf(java.lang.String filename)
       throws java.io.FileNotFoundException,
              JGException
Construct a new Pixbuf from an image file.

Parameters:
filename - The name of the image file.
Throws:
java.io.FileNotFoundException - if filename doesn't exist.
JGException

Pixbuf

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

Parameters:
filename -
width -
height -
preserveAspect -
Throws:
java.io.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)
       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.

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

getFileInformation

public static PixbufFormat getFileInformation(java.lang.String filename)

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 -

width

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

Returns:
The width

height

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

Returns:
The height

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 -

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 -

rotate

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

Parameters:
direction -

flip

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

Parameters:
horizontal -

getColorspace

public Colorspace getColorspace()
Returns the Colorspace for the Pixbuf.


getNumChannels

public int getNumChannels()
Returns the number of channels for the Pixbuf.


hasAlpha

public boolean hasAlpha()

getBitsPerSample

public int getBitsPerSample()

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.


getOption

public java.lang.String getOption(java.lang.String key)

save

public void save(java.lang.String filename,
                 java.lang.String type,
                 java.lang.String[] optionKeys,
                 java.lang.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".

Parameters:
filename -
type -
optionKeys -
optionValues -
Throws:
JGException

saveToBuffer

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

Parameters:
type -
optionKeys -
optionValues -
Throws:
JGException

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 -

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 -

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 -

getType

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


getPixbufFromHandle

public static Pixbuf getPixbufFromHandle(org.gnu.glib.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.