May 11, 2007

Font Smoothing in Flash Player

The Flash Player uses font smoothing in two basic ways.

First, if a font installed on your computer is being used (called device font or device text), then we use the operating system to draw the text. This means it will use ClearType on Windows if it is turned on, or, font smoothing on the Macintosh or Linux if it is turned on. Thus, Flash Player text using device text will look just like operating system text.

Second, if a font is embedded in the SWF, or, is linked to from a SWF (called embedded font or SWF font), we will use font smoothing, also known as anti-aliasing, that is built into the Flash Player. This high fidelity font smoothing has been around since Flash Player 8. The font smoothing doesn't use the original hints in a font, but preserves character outlines, and then applies auto-hinting. Text which is drawn using embedded fonts looks the same on all operating systems.

Another thing to note is that we provide some dials and knobs for font smoothing when authoring. For example, the designer can select “anti-alias for readability” or turn a couple of knobs for custom settings in Flash. These settings can also be set using ActionScript API’s. (Note that if you use “anti-alias for animation” Flash Player draws using Flash vectors, which provides smooth animations.) Again, these are only available to the author or designer, not to the user of Flash Player.

For bitmap font fans, the Flash authoring application can export pixel snapped (“bitmap”) fonts as an embedded font. This uses the shape drawing in the player, but looks exactly like the original bitmap representation. As long as you don’t scale it, of course.

I do understand that font smoothing can be a very personal taste. Some folks like to turn it off altogether, while others, like me, can’t imagine going back to bitmap text (and jaggies).

Let me know if you find this helpful in understanding how font smoothing works in Flash Player or have other comments about drawing text.

May 9, 2007

Font Smoothing in Reader & Acrobat

Adobe Reader and Acrobat have had font smoothing for numerous releases. Early on it was an option that needed to be enabled in preferences. We now have it on by default. But, the default setting is for CRT's. You need to explicitly change the settings for LCD displays:

1. Go to preferences (Cntrl-K or Cmd-K)
2. Choose "Page Display" under "Categories" on the upper left corner of the dialog
3. For "Rendering" select "For Laptop/LCD Screens" for the "Smooth Text" option

Font smoothing for CRT's is good, but I see a noticeable difference when I turn on smoothing for LCD's. We use a number of techniques to optimize for LCD's. One major one is to take advantage of the greater resolution of LCD's due to the layout of the parts of a pixel. On a CRT, there are three blurry dots that make up a pixel. On an LCD, there are red, green and blue subpixels next to each other, usually in the horizontal row. We can take advantage of this to position characters (I'm going to use the word characters, but I should really be saying glyphs to be technically accurate) with greater fidelity, essentially to 1/3 pixel resolution. With font smoothing, we've always had the ability to position characters at subpixel positions, typically at 1/4 pixel resolution for CRT's. This improves character spacing.

We also play a number of tricks with the scaling and sampling of characters, and with stem alignment with pixels. Control of color is critical, both in the overall color of the text (which is essentially the number of pixels turned on and the uniformity of "grayness" of a paragraph), and in the minimization of color ghosting (which can make your text look like it is decorated with Christmas lights).

Please try turning on smoothing for LCD Screens. I'd love to hear about how it changes your reading experience.

December 6, 2006

Mars now on Adobe Labs

We've just posted the Mars plug-ins for Acrobat 8 and Reader 8. You can find them at http://www.adobe.com/go/mars. As I noted in my earlier blog, I think of Mars as an XML- and ZIP-based representation of PDF. BTW, looking at the site, I see there's already some good technical discussion with Adobe folks jumping right in.

Check it out!

November 16, 2006

Upcoming Apollo Web Seminar

I want to let folks know that we have an online seminar on Apollo coming up in a couple of weeks. It's scheduled for November 28 at 3 pm ET. Luis Polanco, the Apollo Product Manager, will be presenting.

To learn more and to register see: http://www.adobe.com/cfusion/event/index.cfm?event=detail&id=648909&loc=en_us  

Put it on your calendar!


October 27, 2006

Observations from MAX 2006

My first MAX conference was a blazing success. Arriving on Tues am (and unfortunately missing most of the keynote), I stayed for 3 days, leaving on Thu pm, for a long trip home. (While I live in California, my trip home involved retrieving luggage from the bellhop and waiting 15 minutes in the taxi line. Then, fortunately, only about 15 minutes in the taxi – with one very “taxi” maneuver – jumping from the middle lane to the front of the left turn lane just before the left turn light switched on. Waiting for a slightly late flight. Then, a 2-1/2 hour bus ride up to Sonoma County, where my caring wife will pick me up and drove me home. Overall, started this journey about 3:15 pm, it’s now 7:35 pm at SFO and I hope will about 10:30 pm. I really feel for the folks who have to fly across the country or overseas.)

Most of my time was spent at the Apollo pod. Oddly, we were at the back of the exhibit room, facing the back wall. But, folks found us nonetheless. We got lots of time and focus at the keynotes each morning. At the pod, I found most folks telling me that they really love Flex and that they can’t wait for Apollo -- everyone wants to be on our private beta. We will have a version up on Adobe labs in early 2007.

The demos of applications on Apollo were a real hit, including Ascension (Mike Chambers' music app), eBay on the desktop, the Buzzword word processor, and the xif collaboration client. Lots of folks told me about the applications they have now in Flex or Flash or HTML that they want to move to Apollo. This is across a broad array of industries, from elearning to government to finances.

Many asked me about the installation process for Apollo and Apollo rich internet applications (RIA). The Apollo runtime needs to be installed just once, like Flash Player or Adobe Reader. Your internet application can be installed just like a traditional desktop application: download from a website, pushed out to desktops, installed from a CD and so on. Once on the desktop, an Apollo RIA will be integrated into the desktop, allowing launch from OS mechanisms, such as the Start menu on Windows or the Dock on Macintosh. Another question was about the security model, which is an area we are still working on internally. That’s obviously an area we need to communicate about early.

Everyone is excited about incorporating Flash and HTML and PDF into their desktop RIA’s in Apollo. You can see the FAQ, presentations and other stuff we have right now up on the Adobe labs website for Apollo.