While platforms these days have fairly good 2D graphics support like Quartz on OSX, GDI+ on XP, and , and Gnome Canvas, developers like me often have to use third-party libraries for whatever reasons. On Win32, for example, GDI+ support is missing in legacy platforms which means either giving up on fancy graphics, redistributing GDI+ binaries, use a third party library, or writing one yourself. Writing one yourself is fun (I have done it a couple of times over 20 years) but, unless it offers some unique features, you'll always end up migrating to a third party library.
BTW, Flash has an excellent 2D graphics engine but it's lacks an API so it's like a sports car without a driving wheel. Yes, you can embed the Flash ActiveX and generate SWF on-the-fly but it's unwieldy for dynamic interaction and even handling gets tricky. Embedding Adobe SVG ActiveX is just as unwieldy if not more.
While there are proprietary 2D engines out there, typically written by a few guys at a small company, they tend to disappear within a couple of years, either bought by companies (i.e. Apple, Adobe, Macromind, and Microsoft), or abandoned out of lack of interest or workable revenue model. Besides, they charge fairly steep fees so I tend to avoid them.
Out of all the freely available 2D libraries out there, Libart stands out in features and quality. It offers fast anti-aliased rendering and it's use in Gnome Canvas over the years means most of the bugs have already been stepped on. Libart is also used to drive librsvg, a SVG engine, and Java 2D, Java's graphics API, although Sun made extensive changes to tap hardware acceleration. While Libart can and has been used cross-platform, it's not exactly cakewalk to use in non-Linix platofrms. Cairo has some interesting features and rising interest could mean it will replace Libart someday, but it's still in development.
Third-party 2D graphics library I really like these days is Anti-Grain Geometry (AGG) which, although dormant for the last two years, has been rejuvenated with the released of version 2.1. AGG is written in C++ and uses templates extensively like ATL does. AGG is lightweight, very fast, flexible, and full of features. It even comes with a partial implementation of SVG viewer as an example. AGG supports Win32, X11, and SDL as is. It doesn't yet support features variable stroke effects like Creature House's Expression 3 engine and Fractal Design's Painter support but then it's just me being unreasonable. π
I should note that subpixel graphics was first done 20 years ago in Word Handler to display 70 columns of hi-res text on Apple II. Silicon Valley Systems, the company that published Word Handler, was based just 5 minutes from where I live now and I enjoy fond memories of working there every time I pass by the old office on El Camino. I guess everybody remembers their first job. LCD screens were just starting to replace LED on calculators at the time, so Steve Gibson and Microsoft ClearType can claim to be the first to use subpixel graphics on LCD screen. Lenny Elekman, where are you now?
Update:
I thought I should put this excerpt from the AGG doc, which is still being written, for those who are expecting GDI+ or Quartz like API from AGG.
Anti-Grain Geometry is not a solid graphic library and it's not very easy to use. I consider AGG as a “tool to create other tools”. It means that there's no “Graphics” object or something like that, instead, AGG consists of a number of loosely coupled algorithms that can be used together or separately. All of them have well defined interfaces and absolute minimum of implicit or explicit dependencies.
In fact, AGG is just a bunch of C++ template classes which little or no documentation to guide you except the examples. Don't wade into AGG unless you know what you are doing.