Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
This is a friendly fork of Henning Makholm's Xcftools with new features
C Shell Perl C++ Other
branch: master

Merge pull request #3 from dimumurray/master

Updated xcf2png.c. Thanks dimumurray.
latest commit 196f51790b
j-jorge authored
Failed to load latest commit information.
gimp Add layer group support introduced in Gimp 2.8.
manpo Import of release 1.0.6
po Import of release 1.0.7
test Import of release 1.0.6
.gitignore Fix .gitignore. Some files should not be ignored.
ChangeLog Import of release 1.0.7
README Import of release 1.0.6
TRANSLATION Import of release 1.0.0
config.guess Import of release 1.0.5
config.rpath Import of release 1.0.0
config.sub Import of release 1.0.5
configure Import of release 1.0.7 Import of release 1.0.7
dist-generated Import of release 1.0.2
exit.1i Import of release 1.0.0
flatspec.c Import of release 1.0.6
flatten.c Import of release 1.0.6
flatten.h Import of release 1.0.6
install-sh Import of release 0.7
io-unix.c Import of release 1.0.6 Import of release 1.0.6 Import of release 1.0.6 Import of release 1.0.6 Import of release 1.0.6
options.i Add layer group support introduced in Gimp 2.8.
palette.h Import of release 1.0.6
pixels.c Import of release 1.0.6
pixels.h Import of release 1.0.6
scaletab.c Import of release 1.0.6
xcf2png.10 Import of release 1.0.6
xcf2pnm.10 Import of release 1.0.6
xcf2pnm.c Import of release 1.0.6
xcfinfo.10 Import of release 1.0.6
xcfinfo.c Add layer group support introduced in Gimp 2.8.
xcfspec.txt Import of release 1.0.5
xcftools.h Add layer group support introduced in Gimp 2.8.
xcftools.spec Import of release 1.0.7
xcfview.10 Import of release 1.0.6 Import of release 1.0.0


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.
Something went wrong with that request. Please try again.