Main

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 09, 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 06, 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!

October 24, 2006

Cool new labs project: Mars

We have a cool, new Adobe Labs project, Mars, an XML- and ZIP-basedrepresentation of PDF. Now developers will be able to use the tools and libraries they are already familiar with to create, edit and manipulate portable documents. And, we're providing plug-ins that let you read and write the Mars format in Acrobat 8 and to read them in Adobe Reader 8.

It's always been easy for end-users to create, annotate, and read PDF documents using Acrobat, Adobe Reader and lots of other products. And, over the years we've added lots of capabilities around forms fill-in, multimedia content, document review & comment, 3D, print production, JavaScript, photo sharing and so on. And, there are a number of Adobe and third-party tools that let developers manipulate PDF documents programatically. But, there are many more developers who are much more comfortable with XML as a data format. They can now use PDF much more efficiently, creating new services and applications, integrating PDF more tightly into their document workflows.

A few high points from my perspective:

- ZIP-based packaging, combining granular PDF pieces and binary data like images, fonts, movies
- SVG page content
- Extensibility mechanisms allowing you to integrate your own data
- Completely compatible with standard PDF: 1:1 mapping between file format constructs
- Easy manipulation due to granular approach, e.g., add/remove/edit standard content like annotations, just by putting an XML-file in the right place

Can't wait to see what folks figure out to do with this.

Nabeel

September 15, 2006

Flashforward Film Festival

This last Wed I was at the awards ceremony for the Flashforward Film Festival. I was totally blown away by the amazing creations of Flash developers. We saw ~30-second trailers of each movie or site, which was fine as we saw all 60 finalists (in 15 different categories). A number drew from commercial work for ecommerce sites, we saw some movies and games, and some animated artwork. All of the finalists work can be found at http://flashforwardconference.com/finalists. (I don't see the winners for each category posted yet.)

A few of my favorites:
http://www.dqbooks.com/
http://www.zumbakamera.com/bendito.html
http://www.reisenthel.com/ (click on products then use buttons at bottom)
http://media.academyart.edu/freeclass/index.html
http://illustree.at/referenzen/oe3_spot_english/ (this is hilarious)
http://www.cove.org/flade/ (very cool physics engine demos)
http://www.agencynet.com/
http://www.samorost.net/samorost2/

Finally, I wasn't quite sure where to put this, but it's my favorite quote from the overall show, by speaker Brendan Dawes while talking about digital watch that required pressing a button to see the time.

“Cool and stupid go together a lot of the time”

September 12, 2006

Flashforward 2006: Adobe Keynote with Kevin Lynch

I’m here in beautiful Austin, Texas (I love that Austin is using Flash on their home page) for the Flashforward conference. The conference is put on by Lynda.com and I was fortunate to meet the very warm and gracious Lynda Weinman last night.

At the Adobe Keynote with Kevin Lynch, we talked about some of the cool stuff we’re working on right now. Also, we’re celebrating 10 years of Flash this year. Check out our Flashback at http://www.adobe.com/products/flash/special/flashanniversary/.

Kevin invited several speakers to come up, and asked each of them to share a sneak peak of something that has not been seen publicly before.

Garrett Nantz of Big Spaceship demoed the very cool Nike Air experience http://www.nike.com/nikeair/us/ on Linux using an early build of FlashPlayer 9.

Mark Anders of Adobe demoed Flex Builder 2 on the Mac, where he wrote a small app, PhotoDemo, pulling in photos from Flickr. He then converted it to an Apollo app, and ran it on the Mac from the desktop (and pulled up pictures of his birds, sure wish I could remember the tag…). As I mentioned in my first blog, we have an Apollo wiki on Adobe Labs at http://labs.adobe.com/wiki/index.php/Apollo.

Then Justin Cole-Everett and Mike Downey came up to talk about Flash Professional 9 ActionScript 3 Preview, now on Adobe labs, http://labs.adobe.com/technologies/flash9as3preview/. Justin showed us a particle effect script, running in both ActionScript 2 and ActionScript 3. With the new ActionScript 3 VM (virtual machine), it looked liked the effect was running about 10 times faster.

Mike then demoed PSD import with rich control over options. And, demoed saving a timeline to ActionScript 3 code. Very cool stuff!

September 08, 2006

Introduction...

Hello! Welcome to my first public blog entry. Let me tell you a little about myself. I’ll start with work. I joined Adobe about 15 years ago (after stints at several other companies, including some stuff at Xerox). I started as a developer on Acrobat 1.0, working deep in the guts of the program. In Acrobat 2.0, I did a lot of the API work for Acrobat & Reader. In Acrobat 3.0, I did a lot of the work to enable viewing of PDF in the browser. And, in between I did a lot of work on the data model, object store, page rendering, print path, font embedding and so on.

After that I joined our core technology organization, which does stuff like deliver graphics engines, font technology, scripting support, UI tools, XML libraries, PDF tools and more to most of the product teams in Adobe. I actually spent about half of my time at Adobe there, starting out as a developer and moving into management. Following that I formed a platform strategy group, which I did for a couple of years.

Then, this year, after the integration of Macromedia, I joined our Adobe client platform group. My role is to be the kind of guy who looks at cross-business and cross-product issues, and, who does some software architecture stuff as well.

When I’m not working, my favorite thing is to be riding my bike around the backroads of Sonoma County where I live. My main bike is a 2004 Specialized Comp Roubaix, which I have to thank a close friend for recommending to me.

My main areas of interest right now include electronic documents (big surprise;-) and Apollo. And, bridging the Adobe and Macromedia worlds. I expect to be blogging on these topics. You can read a bit about Apollo at http://labs.adobe.com/wiki/index.php/Apollo.