org.gnu.gdk

Class PixbufLoader

public class PixbufLoader extends GObject

The PixbufLoader provides a way for applications to drive the process of loading an image, by letting them send the image data directly to the loader instead of having the loader read the data from a file. Applications can use this functionality instead of {@link Pixbuf#Pixbuf(String)} or {@link PixbufAnimation#PixbufAnimation(String)} when they need to parse image data in small chunks. For example, it should be used when reading an image from a (potentially) slow network connection, when loading an extremely large file or even reading an image from a database.

To use PixbufLoader to load an image, just create a new one, and call {@link #write(byte[])}, {@link #write(byte[],int)}, or {@link #write(InputStream)} to send the data to it. When done, {@link #close} should be called to end the stream and finalize everything. The created {@link Pixbuf} can be retireved using the {@link #getPixbuf} method.

See Also: Pixbuf PixbufAnimation

Constructor Summary
PixbufLoader()
Construct a new PixbufLoader that automatically detects the type of image based on the data.
PixbufLoader(String imageType)
Construct a new PixbufLoader that parses the image data as if it were an image of imageType.
Method Summary
booleanclose()
Informs a loader that no further writes will occur, so that it can free its internal loading structures.
PixbufgetPixbuf()
Get the {@link Pixbuf} object that is currently being created.
PixbufAnimationgetPixbufAnimation()
Get the {@link PixbufAnimation} object that is currently being created.
booleanwrite(byte[] buffer)
Parse the images bytes from the given buffer.
booleanwrite(byte[] buffer, int len)
Parse len image bytes from buffer.
booleanwrite(InputStream stream)
Parse the data for the image from the given stream.

Constructor Detail

PixbufLoader

public PixbufLoader()
Construct a new PixbufLoader that automatically detects the type of image based on the data.

PixbufLoader

public PixbufLoader(String imageType)
Construct a new PixbufLoader that parses the image data as if it were an image of imageType.

Parameters: imageType Name of the image format to be loaded with the image.

Method Detail

close

public boolean close()
Informs a loader that no further writes will occur, so that it can free its internal loading structures.

getPixbuf

public Pixbuf getPixbuf()
Get the {@link Pixbuf} object that is currently being created.

getPixbufAnimation

public PixbufAnimation getPixbufAnimation()
Get the {@link PixbufAnimation} object that is currently being created.

write

public boolean write(byte[] buffer)
Parse the images bytes from the given buffer.

Returns: true if the data was loaded successfully, false if an error occured.

write

public boolean write(byte[] buffer, int len)
Parse len image bytes from buffer.

Returns: true if the data was loaded successfully, false if an error occured.

write

public boolean write(InputStream stream)
Parse the data for the image from the given stream. The contents of the stream are read and loaded into the Pixbuf using succesive calls to the {@link #write(byte[],int)} method. If all of the data for the image is in the given stream, the {@link #close} method should be called after this method finishes. You can call {@link #getPixbuf} to get the resulting Pixbuf object.

This method does not make any attempt to efficiently read the data from the given stream. Calling applications should wrap their InputStreams in efficient implementations (such as Buffered* implementations) if necessary before calling this method.

Parameters: stream A stream containing the data to load.

Returns: true if the data was loaded successfully, false if an error occured.