17

Are there any differences between those two libraries?

MiJyn
  • 4,737
  • 4
  • 36
  • 60
user496949
  • 79,431
  • 144
  • 301
  • 419

4 Answers4

11

According to the wikipedia article on GDI:

With the introduction of Windows XP, GDI was deprecated in favor of its successor, the C++ based GDI+ subsystem. GDI+ adds anti-aliased 2D graphics, floating point coordinates, gradient shading, more complex path management, intrinsic support for modern graphics-file formats like JPEG and PNG, and support for composition of affine transformations in the 2D view pipeline.

Wyatt Anderson
  • 9,188
  • 1
  • 20
  • 25
  • 6
    Actually [MSDN does not mention GDI to be deprecated](https://msdn.microsoft.com/en-us/library/dd145203%28v=vs.85%29.aspx), so I'd suggest GDI can be (at the moment) safely used for C procedural usage, while GDI+ stands for C++ OO usage. – snuk182 Apr 13 '17 at 15:16
9

GDI is not object oriented and provide hardware abstraction for win32 plateform. It's written in C

GDI+ is object oriented, and it's main purpose is to provide C++ classes to simplify and extend in some ways GDI usage.

GDI+ also target .NET , as System.Drawing is integrating it

Zain Ali
  • 14,987
  • 14
  • 93
  • 106
7

GDI+ is an improvement on GDI. It contains features not readily available in GDI such as gradient brushes, alpha blending, and more image format support.

You can see what other differences are here: http://msdn.microsoft.com/en-us/library/ms536338%28v=vs.85%29.aspx

goric
  • 11,165
  • 7
  • 55
  • 68
2

From Wikipedia:

GDI+ adds anti-aliased 2D graphics, floating point coordinates, gradient shading, more complex path management, intrinsic support for modern graphics-file formats like JPEG and PNG, and support for composition of affine transformations in the 2D view pipeline. GDI+ uses ARGB values to represent color.

jason
  • 228,647
  • 33
  • 413
  • 517