C-based implementation of the GDI+ API
C PHP C++ M4 Makefile Shell Objective-C
Switch branches/tags
Latest commit 7e5300b Dec 16, 2017 @hughbe hughbe committed with akoeplinger Handle infinite recursive directories in tiff files (#151)
* Fix recursive IFD offsets

* Properly clean up if gdip_bitmap_new or gdip_frame_add fails
Permalink
Failed to load latest commit information.
docs Some minimal documentation about using valgrind to debug libgdiplus a… Mar 23, 2006
src Handle infinite recursive directories in tiff files (#151) Dec 17, 2017
tests Handle infinite recursive directories in tiff files (#151) Dec 17, 2017
.gitattributes Add .gitattributes Jun 29, 2017
.gitignore Update gitignore for Windows (#130) Nov 23, 2017
.jenkins-linux.sh Add --enable-warnaserror flag to configure and enable in CI Sep 24, 2017
.jenkins-windows.sh Fix permissions of Jenkins scripts Jun 29, 2017
.travis.yml Add PNG codec tests and fix several compat bugs (#150) Dec 14, 2017
AUTHORS - Merged cairo 1.0 branch of GDI+ Aug 29, 2005
COPYING Add back COPYING file Sep 20, 2017
ChangeLog Clean up ChangeLog file Sep 21, 2017
INSTALL - Merged cairo 1.0 branch of GDI+ Aug 29, 2005
LICENSE Embed the license texts in LICENSE like on Mono repo Sep 21, 2017
Makefile.am Distribute README.md Sep 26, 2017
NEWS Move some items from website into TODO Sep 21, 2017
README.md Update readme for Windows dependencies via chocolatey (#145) Nov 30, 2017
TODO Move some items from website into TODO Sep 21, 2017
autogen.sh Check for libtoolize rather than libtool Apr 15, 2016
configure.ac Enable std GNU99 (#109) Sep 30, 2017
libgdiplus.pc.in revert this, it breaks for libexif and anyway the new options aren't … Aug 9, 2007
libgdiplus.sln Initial Visual Studio solution Apr 29, 2017
libgdiplus0.spec.in Update the README to markdown (#86) Sep 21, 2017
winconfig.h.in Fix Windows VS build Sep 21, 2017

README.md

libgdiplus: An Open Source implementation of the GDI+ API.

This is part of the Mono project.

Build status:

Travis (Linux/OSX) Travis Build Status
Jenkins (Linux) Jenkins Linux Build Status
Jenkins (Windows) Jenkins Windows Build Status

Requirements:

This requires the libraries used by the Cairo vector graphics library to build (freetype2, fontconfig, Xft2 and libpng).

On OSX you can use Homebrew to install the dependencies:

brew install glib cairo libexif libjpeg giflib libtiff autoconf libtool automake pkg-config

On Debian-based Linux distributions you can use apt-get to install the dependencies:

sudo apt-get install libgif-dev autoconf libtool automake build-essential gettext libglib2.0-dev libcairo2-dev libtiff-dev libexif-dev

On Windows you can use Chocolatey to install the dependencies. Run the following commands from the root of the repository from an admin command prompt:

choco install wget 7zip nuget.commandline
wget "https://dl.hexchat.net/gtk-win32/vc14/x86/gtk-Win32.7z" -O gtk-Win32.7z
wget "https://dl.hexchat.net/gtk-win32/vc14/x64/gtk-x64.7z" -O gtk-x64.7z

7z x gtk-Win32.7z -ogtk
7z x gtk-x64.7z -ogtk

nuget restore

Build instructions

To build on OSX without X11:

./autogen.sh --without-x11 --prefix=YOUR_PREFIX
make

To build on OSX with X11 (e.g. from XQuartz):

PKG_CONFIG_PATH=/opt/X11/lib/pkgconfig ./autogen.sh --prefix=YOUR_PREFIX
make

To build on Linux:

./autogen.sh --prefix=YOUR_PREFIX
make

To build on Windows, open libgdiplus.sln.

Running the unit tests

Run the following command from the root of the repository:

make check

Installing libgdiplus

Run the following command from the root of the repository:

make install

Optional build options [UNSUPPORTED]

--with-pango

This builds libgdiplus using Pango to render (measure and draw) 
all of it's text. This requires Pango version 1.10 (or later).