Im Gegensatz zur prozeduralen Programmierschnittstelle GDI ist GDI+ objektorientiert. Die prozedurale Programmierung ist dennoch über die GDI+ Flat API möglich, von deren Nutzung seitens Microsoft abgeraten wird.
Neben dem fundamentalen Wechsel des Programmierparadigmas, bietet GDI+ folgende Neuerungen:
Es werden Farbverläufe für das Zeichnen von Linien und als Fülleffekt für geschlossene Formen unterstützt.
Pfade werde als Objekte gespeichert. Funktionsaufrufe in GDI werden immer direkt auf dem Gerätekontext (englischDevice Context, DC) ausgeführt. Der gezeichnete Pfad besitzt danach aber keine Referenz. In GDI+ bleibt das Objekt auch nach dem Zeichnen erhalten und kann wiederverwendet werden.
Die Grafikfunktionen des .Net-Frameworks nutzen intern GDI+.
Das plattformunabhängige Mono-Framework greift in dessen Pendant libgdiplus intern auf die ebenfalls plattformunabhängige Grafikbibliothek Cairo zurück.
.NET nutzt in dessen Bibliothek System.Drawing.Common unter Windows GDI+ und für alle andere Plattformen die Bibliothek libgdiplus aus dem Mono-Framework. Seit der Version 6.0 empfiehlt Microsoft allerdings die Nutzung anderer Grafikbibliotheken, wie beispielsweise SkiaSharp (einem Wrapper für Skia), ImageSharp oder Aspose.Drawing. Das Einbinden der Bibliothek in Projekte, die nicht ausschließlich für Windows ausgelegt sind, erzeugt eine Compiler-Warnung. Zudem wird beim Aufruf einer Funktion aus der Bibliothek zur Laufzeit eine Ausnahme ausgelöst.
EMF+
Das EMF-Format repräsentiert eine Kette von GDI-Zeichenoperationen zur Darstellung von Vektorgrafiken. Seit WindowsXP existiert eine Erweiterung des Formats namens EMF+, die es erlaubt, auch die erweiterten Möglichkeiten von GDI+ zu nutzen.
↑Alex Polyakov, Vitaly Brusentsev:Graphics Programming with GDI+ and DirectX. A-List, Wayne 2005, ISBN 1-93176939-7, Chapter3.2: Metafiles, S.68–78 (englisch, eingeschränkte Vorschauin der Google-Buchsuche).