Fak. Physik, Logo Teil 1
Karlsruhe Institute of Technology (KIT)      Universität Karlsruhe (TH)     
Fak. Physik, Logo Teil 2Universität Karlsruhe (TH)

Computer-Pool der Fakultät für Physik

CImg-Anleitung

Etwas Grafik in C++ — die Bibliothek CImg

Grafikbefehle gehören nicht zum standardisierten Sprachumfang von C++, dennoch ist es natürlich möglich, aus einem C++ Programm heraus Grafiken zu erzeugen. Zur Grafikerzeugung und -darstellung gibt es zahlreiche sogenannte "Bibliotheken".
Eine relativ kleine und sehr praktische Bibliothek für Grafikausgaben und Bildbearbeitung ist CImg. Die Bibliothek ist in C++ geschrieben und hat zwei Vorteile: Erstens: mit dem gleichen Programmquelltext können sowohl unter Unix/Linux als auch unter Windows Grafiken ausgegeben werden. Zweitens: es wird nur eine einzige (Quelltext-)Datei benötigt.

Anleitung

  • Um CImg zu verwenden, benötigen Sie lediglich die Datei CImg.h (hier erhältlich), die den gesammte Quelltext der Bibliothek in einer "Header-Datei" enthält. Binden Sie diese Datei mittels #include "CImg.h" in Ihrem Programm ein. Dabei sollte CImg.h in Ihrem aktuellen Arbeitsverzeichnis sein.
  • Compilieren: Bei der Compilation (genauer: beim "Linken") müssen die jeweiligen "fundamentalen" Grafikroutinen Ihres Betriebssystems eingebunden werden. (Diese sind ihrerseits ebenfalls Bibliotheken und werden von CImg aufgerufen.) Welche Bibliotheken Sie hier angeben ist abhängig vom Betriebssystem, wo und wie Sie diese angeben ist abhängig von der Entwicklungsumgebung, die Sie verwenden.
    Eine kurze Liste:
    • Linux (Kommandozeile): g++ IhrCode.cc -lX11 -lpthread
      (weitere Compileroptionen können natürlich verwendet werden). Falls Sie eine Entwicklungsumgebung einsetzen, sollte der Compileraufruf so konfiguriert werden, dass -lX11 -lpthread vorkommt.
      Da nun hierbei die Funktionsköpfe von X11 (fundamentale Grafikroutinen) des Linuxsystems verwendet werden, muss das Paket "libx11-dev" oder "xorg-x11-devel" (Name variiert etwas je nach Linux-Distribution) vorhanden sein.
      Diese gleichen Compiler-Optionen gelten wahrscheinlich auch für Mac OS X.
    • Windows: Es muss die Bibliothek gdi32 eingebunden werden. Unter wxDev-C++ (mit MingW) ist der einfachste Weg, im Menüpunkt Tools/Compiler-Options (deutsch: Werkzeuge/Compiler Optionen) im Reiter Compiler unter "Add these commands to the linker command line" den Text -lgdi32 einzutragen.
    • Andere (z.B. Visual C++): Eine Anleitung findet auf dieser Seite, ferner befinden sich im Quelltext-Paket von CImg (unter der obigen Adresse herunterladbar) einige weitere Dateien und Hinweise innerhalb des Unterverzeichnisses "compilation".
  • Mit diesem kleinen Beispielprogramm cimg-example.cc lernen Sie einige Befehle von CImg kennen. Weitere Befehle und weiteres Know-How finden sich in der CImg-Dokumentation.
Kleiner Blick über den Zaun: Bei der Programmierung eines "Graphical User Interface" (GUI) bedient man sich üblicherweise eines Widget Toolkits. Diese stellen in der Regel allerlei Grafikhilfsmittel, z.B. Schaltflächen, Menüfelder und Regler (Mausbedienung) zur Verfügung. Im Allgemeinen sind sie umfangreicher und auch nicht ganz so einfach zu verwenden wie CImg.

Zuletzt geändert: 23.06.2010 15:37:27. Impressum/Kontakt

© 2008 Fakultät für Physik an der Universität Karlsruhe (TH)