O'Reilly logo

Programming Web Graphics with Perl and GNU Softwar by Shawn Wallace

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

File Operations

All of the file operations performed by the Gimp are handled by plug-ins. To support a new file format, all you have to do is write a “file load” procedure and a “file save” procedure, and register them with the Gimp. Each format’s load procedure follows a similar format, taking three arguments and returning an image. The run_mode specifies whether the Gimp should prompt the user for information (if RUN_INTERACTIVE) or simply perform the action with the supplied arguments (if RUN_NONINTERACTIVE). The filename and raw_filename[23] arguments should both contain the path and name of the file to load. The first five arguments of the save procedure for a file format are also generally standard: the run_mode ,the image to save, the drawable for the image, the filename to save it as, and the raw_filename. Most formats have additional arguments to the save procedure (file_png_save, for example, allows you to specify a compression level and whether the image is to be interlaced).

The gimp_temp_name function will return a unique filename in the user’s .gimp directory. Here’s an example of saving an image as a temporary GIF file:

# Save as a temporary GIF file
#
gimp_convert_indexed_palette($img, 1, 2, 0, 0);   # Use web palette
my $tmpfile = gimp_temp_name('gif');
file_gif_save(RUN_NONINTERACTIVE, $img, $drawable, 
              $tmpfile, $tmpfile, 1, 0, 100, 0);

There are actually many more file formats supported by the Gimp; only those specifically applicable to web graphics have been listed ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required