Main Page

Fugenschnitzer— Overview For Experts And Developers


What Is Fugenschnitzer?

Fugenschnitzer is a Seam Carving program library and an application program basing on it, written 2008/2009 in C and Python by David Eckardt, and published under the terms and conditions of the GNU General Public License (GPL) 3 and the GNU Lesser General Public License (LGPL) 3.
Fugenschnitzer is a Source-Forge-Projekt: http://fugenschnitzer.sourceforge.net
More information can be found on the main page.

Program Components

Fugenschnitzer consists of these components:

  1. Fugenschnitzer Program Library
  2. Fugenschnitzer-Application Program

What Is Seam Carving?

Seam Carving is a method for resizing images (bitmap graphics). Seam Carving was introduced in 2007 by Ariel Shamir and Shai Avidan. A comprehensive explanation of this method can be found on http://www.seamcarving.com.

What Are Fugenschnitzer's Special Features?

Fugenschnitzer is

The Fugenschnitzer Program Library

The Fugenschnitzer Program Library contails the actual Seam Carving implementation. Its functions contain the routines which neccessary to resize a loaded image and a couple of useful tools.
The library is written in plain C (C99) and contains about 3000 lines of source code. The source code intentionally does not contain any machine or platform specific instructions or assumptions in order to archieve a high portability. (The only exception from this is the image data byte order (endianness).) Furthermore, the program library depends only on the C99 standard library.
The Fugenschnitzer Program Library is invoked by an application program as a dynamic run-time library.

The Fugenschnitzer Application Programs

Two Fugenschnitzer Application Programs are available: One with a graphic user interface (GUI) and another one command line based (CLI). Both represent a user interface to control the Fugenschnitzer library functions and to load and save an image. The command line program additionally serves as example how to invoke and use the Fugenschnitzer-Bibliothek with a C program.

GUI Version

The GUI version is written in Python 2.6 and uses the GUI Toolkit wxPython 2.8.9. Invocation of the Fugenschnitzer library is done through the Python ctypes module.

CLI-Version

Like the Fugenschnitzer library, the CLI Version is written in C99 and uses the libpng to load and save images in the PNG format.


Where To Get Fugenschnitzer?

You can retrieve Fugenschnitzer via these links:


Compiling

Compiling The Fugenschnitzer Program Library with GCC

Prerequisites

To compile the Fugenschnitzer Program Library, GCC 4 or higher is reqired.

Preparing The Source Code

First download the source code package and extract it into any directory. Then open the Makefile with a text editor and remove the comment characters in the section of the target platform. For more information see the Makefile.

Compiling The Library

After editing the Makefile, enter
> make
to compile the library.

Compiling The Fugenschnitzer CLI Application with GCC

Prerequisites

This also requires GCC 4 or higher and additionally:

Preparing The Source Code

Here applies same as for compiling the library. Additionally, the Fugenschnitzer library must be placed in the source code directory or in the search path for external libraries. The library is a single file named as follows:

Platform File Name
Windows seamcarv.dll
Darwin/OS X libseamcarv.dylib
Linux libseamcarv.so


The include header seamcarv.h must also be placed in the include search path or in the source code directory.

Compiling The Application

This is also done by
> make
.