WYSINLAWYG (What You See Is No Longer Always What You Get)

by Michael S. Kaplan, published on 2006/09/11 05:53 -04:00, original URI: http://blogs.msdn.com/b/michkap/archive/2006/09/11/749328.aspx

One way to look at the issues in You say it 'looks good on paper?' It must not be using ClearType.... is to realize that ClearType represents a reversal in the WYSIWYG (What You See Is What You Get) battle that TrueType actually helped Windows win on the text front.

Similar to the way that device fonts would break WYSIWYG by causing printers to be engineered to print something different than was on the screen, ClearType is using capabilities that the printers do not have.

The suggested workarounds are to make the resolution high enough on the screen side so that the subpixel estimates on the screen do not differ as much from the estimates on the printer (which in most cases would have a higher resolution than the screen does). It would be this difference in how the screen and the printer handle the same issue (moving to a higher resolution) that is the basis of the "bug" here.

Maybe we need a ClearType for printers as well? :-)

I am only half joking here. If printers used as ClearType-esque mechanism as a way to deal with the mapping  from the lower screen resolution to the printer's higher resolution, than WYSIWYG would be able to return to us!

Now I know very little about the printer side of this and whether it is feasible or not; perhaps the thought has been investigated and abandoned (if so, feel free to let me know!). Otherwise, it may be a good line of inquiry/research....


This post brought to you by (U+0f5d, a.k.a. TIBETAN LETTER WA)

# Dean Harding on 11 Sep 2006 6:26 AM:

The problem is that while an LCD screen has uniform red-green-blue (or blue-green-red) pixels, a printer does not.

The solution is for the ClearType folk to just give in and let us TURN IT OFF if we want to!

# Michael S. Kaplan on 11 Sep 2006 6:40 AM:

Yes, but assume for a minute that there are people who are much more important than I am who make much more money than me who are quite insistent on the importance of not turning ClearType off.

Assume further that those same people have lots of resources and have a big research interest.

There are, they do, they are, they won't, they do, and they do.

In the interest of making progress, why not suggest one alternative that will allow the particular stalemate to be something we can all move past? :-)

# Adam on 11 Sep 2006 6:41 AM:

Yup - you should never take screenshots with cleartype on, as if you view them on an LCD with opposide sub-pixel ordering, it will look doubly-awful.

Why isn't cleartype a per-device setting? LCDs would have settings based on their actual characteristics (and would allow cleartype to work well on a system with multiple LCD screens with different RGB ordering - how does that look now? Pretty hideous I suspect) and other devices (like bitmap DCs for screenshots, or printers) would just not have it on at all.

# AaronLa on 11 Sep 2006 11:14 AM:


I think you're right on about an "anti-"clear type for this printing scenario, but at the application level.  Printers (generally speaking) know how to render text very well.  Your 1200 dpi office printer will render text at 1200 dpi -- unless the font is no-embed.  Printers know how to make text look very good; it's what they're designed to do, after all.

But of course, the issue here is print rendering of low resolution bitmap data (ie, the extremely low resolution of 96 dpi).  

I'd be all up for designing an anti-clear-type bitmap filter.  But since cleartype is a lossy transform (ie, background color data is partially or completely lost by the obscuring text), you won't get a perfect result, but you could do very well, especially on your typical black-on-white or black-on-gray UI.

BTW, has anyone else noticed that Vista Aero glass interacts strangely with cleartype :)


footnote - BTW, great blog!  Makes for great breakfast-time reading!

# Rosyna on 11 Sep 2006 1:41 PM:

I think a better "solution" for all this would be a way to save screenshots in a vector format. So then the printer could reproduce the text and ui on its own, in a higher dpi. bitmaps are evil. So are file paths.

# Ben Cooke on 11 Sep 2006 2:22 PM:

I agree with Rosyna. Presumably one approach would be to con the app into rendering itself to a metafile-recording device context: just send the window in question a WM_PAINT message with a different target DC.

This would no doubt break in several apps, because lots of apps cache their DC in a global variable and re-use it, and some apps don't completely re-paint the window even if Windows asks them to, but this would be a possible solution for some cases, and I think (though I've not really thought this through entirely) that this is something that a third-party app could do without any extra help from Windows/GDI.

If differences between metafile DCs and bitmap DCs are a problem, one could presumably also just create a high-DPI bitmap DC and pass that instead.

# Mike on 11 Sep 2006 3:06 PM:

I don't think it's the actual Cleartype people that are doing the insisting, it's the font people who designed the fonts assuming Cleartype is always on.  Once you do manage to get Cleartype off Segoe UI for example looks really bad.

This fix to all this, such as it is, is not to introduce Cleartype to printers, it's to increase the (physical) DPI of monitors.  Anti-aliasing of text in general is only needed in the first place because screen DPI is so small.  Modern printers normally have fairly high DPI and so don't need it.  Getting over that hump however requires people to get new monitors (as opposed to printers so it's basically a wash) and software people to stop assuming that the whole world is 96dpi and hardcoding thier UI layouts as such.

# Michael S. Kaplan on 11 Sep 2006 3:28 PM:

Actually, it is the ClearType folks who are doing the loudest insisting here -- on fontblog, on ieblog, all over the place.

Speaking personally, I do not like the UI at higher DPSI settings; it looks awful. So convincing me to change is going to be a hard sell here since if the setting looks bad I don't use it.

# Dean Harding on 11 Sep 2006 7:59 PM:

> Speaking personally, I do not like the UI at higher DPSI settings; it looks awful.

But that's only because everyone designs their UI at 96 DPI. If we all moved to 300 DPI at the same time, then apps would start to look a whole lot better!

I run at 144 DPI on my laptop, and many apps look good - office, visual studio, all the built-in ones, etc. but some don't look so great (strangely enough, msn messenger looked great, but the new 'windows live' messenger doesn't scale at all) and it's usually the *combination* of well-behaved and badly-behaved apps that makes the whole experience rather clumsy.

# josh on 11 Sep 2006 11:55 PM:

"Why isn't cleartype a per-device setting? LCDs would have settings based on their actual characteristics (and would allow cleartype to work well on a system with multiple LCD screens with different RGB ordering - how does that look now? Pretty hideous I suspect) and other devices (like bitmap DCs for screenshots, or printers) would just not have it on at all."

All it takes is a display that can swivel.  Does no one working on ClearType have a display that can swivel?  I've got two identical monitors attached to my system at work, and one rotated 90 degrees so I can see more code.  It's not pretty.

OTOH, it seems somewhat evil to turn off ClearType for screen shots of displays that have ClearType on.  That's even more WYSINWYG.

# Adam on 12 Sep 2006 9:09 AM:

Josh : Why? The point of cleartype is that you're not supposed to be able to see the artifacts (coloured jaggies) that it inserts. You're not /supposed/ to "see" cleartype.

Given that a bitmap can be blown up, shown on a display without a well defined sub-pixel RGB ordering (e.g. printer, CRT), or worse, shown on a display with the *wrong* sub-pixel RGB ordering, applying cleartype to such (pseudo-)devices where it's almost guaranteed that you /will/ see it seems, well, like a bit of a triumph of enthusiasm over common sense.

# Mike Dimmick on 12 Sep 2006 10:35 AM:

We keep trying to leave this feedback but it's constantly ignored.

ClearType looks good, to some users, on some displays. It does not look good to all users on all displays.

Regardless of the research, some users don't like ClearType at all, and disable it on their LCD (or other pixel-mapped) monitors. You are never going to persuade these users. It may be that they've now used aliased fonts for so long that they've trained themselves to recognise the aliased character shapes for the common fonts in the common sizes ;)

Other users love ClearType and will enable it everywhere, even on CRTs which we know don't actually have the physical capability of displaying it properly. Even so, they prefer the character shapes, even with the odd colour fringing.

Still other users will enable ClearType on some monitors and turn it off on others. I'm one of these - I use and love ClearType on my LCD at home, and used to use it on a DiamondTron aperture grille CRT display before I bought the LCD. However, I detest it on this fairly cheap shadow-mask-based CRT at work.

IE and other such applications obey the common Windows preferences for colours and fonts (Office less so than the others...) - why the heck don't they respect the preference for font smoothing? This setting is not - should not be - special.

Please consider a donation to keep this archive running, maintained and free of advertising.
Donate €20 or more to receive an offline copy of the whole archive including all images.

go to newer or older post, or back to index or month or day