Question on GDI vs GDI+

Graphics g = Graphics.FromImage(bm)

...

...

 g.FillRectangle(solidWhiteBrush, 0, 0, bm.Width, bm.Height);

 g.DrawString(AnnotationText, AnnotationFont, solidBlackBrush, new PointF(7f, 2f));


Here are my questions:

1)This is GDI+, correct?
(Running this on Windows 7)

2)What is the difference between GDI and GDI+?  Is the version of GDI tied to a particular OS?

3)Can the above code be optimized to run faster?

The intent of the code is to annotate an image with some text (a date stamp).
LVL 5
Tom KnowltonWeb developerAsked:
Who is Participating?
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
In a nutshell:
WinForms is based on GDI+, while WPF is based on DirectX.
GDI was used before XP, while GDI+ is used in XP and above.
*Vista and Win 7 actually use a completely different drawing system (The Desktop Window Manager) that buffers GDI+ into a composite image with DirectX to render the operating system.

So yes, and no.  Yes, you are using GDI+ to add text to your image.  But when it gets displayed on the screen it's actually using DirectX because you are running Win 7.

Don't think you can make the code much faster.

Instead of FillRectangle(), you can do this to paint your bitmap a solid color:

    g.Clear(Color.White);
0
 
Tom KnowltonWeb developerAuthor Commented:
Is it possible to use or hook into WPF if I am running from inside a console app in C#?


Essentially, I have a console app (NO GUI) just running and it is annotating images using (at the moment) calls to GDI+.

I want to do the same thing in the console app, except I want to access either WPF or SharpDX libraries.  Again -- there is no GUI -- this is all done sight unseen.
0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
I'm not sure how you'd do it with WPF, but you can probably just add a REFERENCE to the Console app?
0
Cloud Class® Course: Microsoft Windows 7 Basic

This introductory course to Windows 7 environment will teach you about working with the Windows operating system. You will learn about basic functions including start menu; the desktop; managing files, folders, and libraries.

 
Tom KnowltonWeb developerAuthor Commented:
No idea either.
0
 
Tom KnowltonWeb developerAuthor Commented:
What do you know about SharpDX, Idle?
0
 
Mike TomlinsonMiddle School Assistant TeacherCommented:
Absolutely nothing, other than it wraps a bunch of DirectX stuff for you.  =\
0
 
Tom KnowltonWeb developerAuthor Commented:
That is about what I know, too.  :(


One way or another I am sure I'll figure this out.

I have a few other questions on this topic right now.  If you know any EE gurus on SharpDX please send them my way, okay?  Any C# / XNA / game developer types you are acquainted with might know about SharpDX.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.