Wednesday, April 20, 2016

Improving Charting Companion with GDI+

A Windows program uses GDI (Graphical Device Interface) to create graphics. GDI is a great invention that enables the programmer to easily mix text, raster (photos) and vector (drawings) graphics in the same output. GDI is what allows a Windows program to display the same thing to a screen and a printer (know as WYSIWYG, or "What you see is what you get").

GDI was introduced in 1985 with Windows 1.0. Windows XP was released in 2001 and featured GDI+, an improvement over GDI including anti-aliasing, gradients, built-in support for image files (JPG, GIF, PNG), transparency & color blending, and better display of text characters.

Antialiasing is a software technique for diminishing jaggies - stairstep-like lines that should be smooth. Jaggies occur because the output device, the monitor or printer, doesn't have a high enough resolution to represent a smooth line.

Antialiasing reduces the prominence of jaggies by surrounding the stairsteps with intermediate shades of gray (for gray-scaling devices) or color (for color devices). The pixels that surround the edges of the line are changed to varying shades of gray or color in order to blend the sharp edge into the background.

Raw vs. Antialiased vs.line





 Here is a before & after example:








Antialiasing makes smoother and better lines


 Here is what it looks like at scale:







Un-aliased & antialiased letter




  This what it looks like for text:






Antialiased text is smoother and looks better


You can see how the un-aliased text is jagged and crotchety:




We are improving Charting Companion by converting the GDI graphics to GDI+. Users will see an improvement in the quality of the text and lines. Displaying photos with GDI+ will also free us from a third-party library whose licensing model has become exorbitant.

We hope to bring you these enhancements soon, so you can tell the story of your family ever so attractively.


1 comment:

  1. Sounds good. Do we need to update Charting Companion now? If so, how do we do that?

    ReplyDelete