Coder Social home page Coder Social logo

xcftools's Introduction

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.

Portability
===========

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.

Installation
============

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

After the source archive is extracted, the command sequence
   ./configure
   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.

License
=======

Xcftools is written by Henning Makholm <[email protected]>
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.

xcftools's People

Contributors

dimumurray avatar dolda2000 avatar gladk avatar grumbel avatar iwamatsu avatar j-jorge avatar locutusofborg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

xcftools's Issues

Tags

I'm doing a Docker Image with the xcftools, cause I need to use it in an environment where I cannot compile them. It's hosted here: https://hub.docker.com/r/think/xcftools/.
I based on your xcftools.

It would be awesome if you could tag the current version.
1.10.0 probably.

Layer groups render twice

When exporting an XCF with layer groups the layers inside groups are rendered twice. xcfinfo gives a clue why:

http://al.robotfuzz.com/~al/random/test.xcf

  • 128x128+0+0 RGB-alpha Normal Layer Group
  • 128x128+0+0 RGB-alpha Normal layer 1
  • 128x128+0+0 RGB-alpha Normal layer 2

Here layer 1 is in the layer group but layer 2 is not. "Layer group" appears like a normal layer. It seems that layer 1 gets rendered twice. Once as part of the layer group and once in the normal paths.

If the layers contain transparency or special blending modes the result won't look right.

Extra checks in ./configure

This is a nitpick, but it would be useful to either have in ./configure or the README that the following are also required:

  • libpng-dev
  • gettext

[BUG] xcf2png.c fails to compile with later versions of libpng.

Found a bug. With later versions of libpng typecasted NULL definitions were removed (see section 2b in Changes Summary). As a result xcf2png.c fails to compile with later versions of libpng as it references deprecated definitions on line 73 as seen below:

libpng = png_create_write_struct(PNG_LIBPNG_VER_STRING,
png_voidp_NULL,
my_error_callback,
png_error_ptr_NULL);

By replacing 'png_voidp_NULL' and 'png_error_ptr_NULL' with NULL xcf2png compiles.

tests failing

Hi - not sure if this is being maintained any more, but after getting the cmake branch up and running, and fixing some of my iconv issues, tests start failing around testpnm indextest(s). Are these all positive tests ? I rebuilt netbpn to support the test suite and have 14 (out of 141) tests that fail. Any help/support/insight is greatly appreciated. It is entirely possible that the test suite is no longer valid after drifting versions of both xcftools and netbpn over the years...

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.