Fugenschnitzer ist eine Seam-Carving-Programmbibliothek und ein darauf aufbauendes Anwendungsprogramm,
geschrieben in C und Python 2008/2009 von David Eckardt und veröffentlicht unter der
GNU General Public License (GPL) 3 und der GNU Lesser General Public License (LGPL) 3.
Fugenschnitzer ist ein Source-Forge-Projekt:
http://fugenschnitzer.sourceforge.net
Weitere Informationen auf der Hauptseite.
Fugenschnitzer besteht aus folgenden Komponenten:
Seam Carving ist eine Methode zur Größenänderung von Bildern (Rastergraphiken). Seam Carving wurde im Jahre 2007 vorgestellt von Ariel Shamir und Shai Avidan. Eine ausführliche Erläuterung dieses Verfahrens befindet sich auf http://www.seamcarving.com.
Fugenschnitzer ist
Die Fugenschnitzer-Programmbibliothek beinhaltet die eigentliche Implementierung
des Seam-Carving-Verfahrens. Ihr Funktionsumfang umfaßt die nötigen Routinen, um die Größe eines geladenen
Bildes mittels Seam Carving zu verändern, sowie einige praktische Zusatzfunktionen.
Die Bibliothek ist in reinem C (C99) geschrieben und umfaßt etwa 3000 Zeilen an Quellcode. Der Quellcode enthält
bewußt keine maschinen- oder plattformspezifischen Anweisungen oder Annahmen, um die höchstmögliche
Portierbarkeit zu erreichen. (Die einzige Ausnahme bildet die Bytereienfolge (Endianness) der Bilddaten.) Weiterhin
ist die Programmbibliothek ausschließlich von der C99-Standardbibliothek abhängig.
Die Fugenschnitzer-Programmbibliothek wird als dynamische Laufzeitbibliothek
in ein Anwendungsprogramm eingebunden.
Es stehen zwei Fugenschnitzer-Anwendungsprogramme zur Verfügung: Eins mit graphischer Benutzeroberfläche (GUI – Graphic User Interface) und ein kommandozeilenbasiertes Programm (CLI – Command Line Interface). Beide stellen eine Benutzeroberfläche zum Steuern der Fugenschnitzer-Bibliotheksfunktionen sowie zum Laden und Speichern eines Bildes dar. Das Kommandozeilenprogramm dient außerdem als Beispiel zum Einbinden und Verwenden der Fugenschnitzer-Bibliothek in ein C-Programm.
Die graphische (GUI) Version ist in Python 2.6 geschrieben und verwendet das GUI-Toolkit wxPython 2.8.9. Die Einbindung der Fugenschnitzer-Bibliothek erfolgt über das Python-Modul ctypes.
Die Kommandozeilen-(CLI-)Version ist wie die Fugenschnitzer-Bibliothek in C99 geschrieben und verwendet zum Laden und Speichern von Bildern im PNG-Format die libpng.
Fugenschnitzer ist über diese Links abrufbar:
Zum Kompilieren der Fugenschnitzer-Programmbibliothek wird GCC 4 oder höher benötigt.
Als erstes das Quellcodepaket herunterladen und in ein beliebiges Verzeichnis entpacken. Danach das Makefile mit einem Texteditor öffnen und im Parameterabschnitt für die Zielplattform die Kommentarzeichen entfernen. Hinweise dazu im Makefile.
Nach dem Bearbeiten des Makefile
> make
ausführen, um die Bibliothek zu kompilieren.
Auch hierfür wird GCC 4 oder höher benötigt. Hinzu kommen:
Hier gilt dasselbe wie für das Kompilieren der Bibliothek. Zusätzlich muß die Fugenschnitzer-Bibliothek
im Quellcodeverzeichnis oder im Suchpfad für externe Bibliotheken abgelegt werden. Die Bibliothek ist eine Binärdatei mit
folgendem Namen:
Plattform | Dateiname |
---|---|
Windows | seamcarv.dll |
Darwin/OS X | libseamcarv.dylib |
Linux | libseamcarv.so |
Außerdem muß der Include-Header seamcarv.h
im Include-Suchpfad oder im Quellcodeverzeichnis abgelegt werden.
Auch dies geschieht mit
> make
.