Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
What is this?

Xcftools is a set of fast command-line tools for extracting
information from the Gimp's native file format XCF. The tools
are designed to allow efficient use of layered XCF files as
sources in a build system that use 'make' and similar tools
to manage automatic processing of the graphics. These tools
work independently of the Gimp engine and do not require the
Gimp to even be installed.

 xcf2pnm  converts XCF files to ppm, pgm or pbm format,
          flattening layers if necessary. If the image
          contains transparency, an alpha map can be written
          to a separate file, or a background color can be
          specified on the command line.

 xcf2png  converts XCF files to PNG format, flattening
          layers if necessary. Transparency information
          can be kept in the image, or a background color
          can be specified on the command line.

 xcfinfo  lists information about layers in an XCF file.

The tools can either flatten an XCF file as given, or extract specific
layers named on the command line.


The software was developed on an Intel-based PC running Debian
GNU/Linux. It ought to work on other Linux variants also. I would
not be surprised if it ran on other unix systems too, but porting
to non-unix platforms will require some work. Most of the code
attempts to be prepared for porting, but this has not been
explicitly tested.


You need GNU make, a C compiler, and perl.

After the source archive is extracted, the command sequence
   make all
   make install
should compile the tools and install them in /usr/local.

The 'configure' script is generated by GNU autoconf, and accepts
the arguments that such scripts commonly do.

You can use
  ./configure --enable-precomputed-scaletable
to precompute lookup tables for pixel composing at compile time.
Normally these tables are initialized at run time if a layer that
needs them is detected. Precomputing them may improve performance
by a few percent, at the cost of doubling the size of each binary.


Xcftools is written by Henning Makholm <>
It is hereby in the public domain.

In jurisdictions that do not recognise grants of copyright to the
public domain: I, the author and (presumably, in those jurisdictions)
copyright holder, hereby permit anyone to distribute and use this code,
in source code or binary form, with or without modifications. This
permission is world-wide and irrevocable.

Of course, I will not be liable for any errors or shortcomings in the
code, since I give it away without asking any compenstations.

If you use or distribute this code, I would appreciate receiving
credit for writing it, in whichever way you find proper and customary.


This is a friendly fork of Henning Makholm's Xcftools with new features






No releases published


No packages published