17

Are there any differences between those two libraries?

MiJyn
  • 5,327
  • 4
  • 37
  • 64
user496949
  • 83,087
  • 147
  • 309
  • 426

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,612
  • 1
  • 22
  • 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
  • 15,535
  • 14
  • 95
  • 108
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,491
  • 7
  • 53
  • 69
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
  • 236,483
  • 35
  • 423
  • 525