Senior Fitness - Exercise and Nutrition for Aging Men and Women
FREE Article Feed for your website.
Home Ownership Magazine
Party Planning Information
Article Marketing Resources
Bio-Medical Research Article Database
Informative Articles on Life, Love and Happiness
Tutorials on Business to Writing
Famous Quotes from Famous People
Song Lyric Information
New US Patent Information
Comprehensive List of Content by Category
Online Auctions and Shopping Related Articles
Article Search
Most Recent Articles
Title: Three-phase electronic ballast
Patent Number: 6,906,474 Issued on 06/14/2005 to Trestman,   et al.

Title: Electroluminescent display device with substrate having regions with different refractive indexes
Patent Number: 6,906,452 Issued on 06/14/2005 to Ichikawa

Title: Image sensor having an improved transparent layer
Patent Number: 6,906,397 Issued on 06/14/2005 to Hsieh,   et al.

Title: Device and method for retaining mercury source in low-pressure discharge lamps
Patent Number: 6,906,460 Issued on 06/14/2005 to Busai,   et al.

Title: Ball grid array package with patterned stiffener layer
Patent Number: 6,906,414 Issued on 06/14/2005 to Zhao,   et al.

Title: Fluorescent lamp and high intensity discharge lamp with improved luminous efficiency
Patent Number: 6,906,475 Issued on 06/14/2005 to Atagi

Title: Headlamp cleaning device
Patent Number: 6,854,666 Issued on 02/15/2005 to Jenkins

Title: Method and system for exchanging earth energy between earthly bodies and an energy exchanger, especially to produce an electric current
Patent Number: 7,059,131 Issued on 06/13/2006 to Hildebrand

Title: Blowing device and air conditioning apparatus having the same
Patent Number: 7,152,425 Issued on 12/26/2006 to Han,   et al.

Title: Semiconductor component having a material reinforced contact area
Patent Number: 6,906,370 Issued on 06/14/2005 to Hübner,   et al.

Title: Electric power steering apparatus
Patent Number: 6,906,483 Issued on 06/14/2005 to Tominaga,   et al.

Title: High accuracy miniature grating encoder readhead using fiber optic receiver channels
Patent Number: 6,906,315 Issued on 06/14/2005 to Tobiason

Title: Device and method for assisting in the movement of a ladder
Patent Number: 7,028,808 Issued on 04/18/2006 to Zeaman

Title: Method for implementing electro-static discharge protection in silicon-on-insulator devices
Patent Number: 6,906,387 Issued on 06/14/2005 to Reese,   et al.

Title: Infrared thermopile detector system for semiconductor process monitoring and control
Patent Number: 6,821,795 Issued on 11/23/2004 to Arno

Title: Method of processing substances by short-pulse, wavelength tunable raman laser
Patent Number: 6,906,283 Issued on 06/14/2005 to Arisawa,   et al.

Title: Composite cooking apparatus and method of controlling the same
Patent Number: 6,906,294 Issued on 06/14/2005 to Yang

Title: Amorphous-silicon thin film transistor and shift resister having the same
Patent Number: 6,906,385 Issued on 06/14/2005 to Moon,   et al.

Title: Synchronous inductance motor, a manufacturing method of the synchronous inductance motor, and a compressor
Patent Number: 6,906,448 Issued on 06/14/2005 to Yoshino,   et al.

Title: End-of-life protection for compact fluorescent lamps
Patent Number: 6,906,465 Issued on 06/14/2005 to Cavallaro

Title: Movable contact unit, panel switch using the same and electronic equipment having the panel switch
Patent Number: 6,906,275 Issued on 06/14/2005 to Koyama,   et al.

Title: Common mode feedback circuit for fully differential two-stage operational amplifiers
Patent Number: 7,154,334 Issued on 12/26/2006 to Dyer,   et al.

Title: Resistance spot welding control device and method
Patent Number: 6,906,276 Issued on 06/14/2005 to Kaeseler,   et al.

Title: Vehicle and a vehicle door
Patent Number: 7,021,697 Issued on 04/04/2006 to Bodin,   et al.

Title: Micromechanical flow sensor with tensile coating
Patent Number: 7,154,372 Issued on 12/26/2006 to Vanha,   et al.

Title: Semiconductor device
Patent Number: 6,906,355 Issued on 06/14/2005 to Kurosaki,   et al.

Title: Data-driven filtering of cepstral time trajectories for robust speech recognition
Patent Number: 7,035,797 Issued on 04/25/2006 to Iso-Sipila

Title: Ink jet image producing device and process for its operation
Patent Number: 6,783,202 Issued on 08/31/2004 to Franzke

Title: Therapeutic methods employing PAI-1 inhibitors and transgenic non-human animal for screening candidate PAI-1 inhibitors
Patent Number: 7,057,086 Issued on 06/06/2006 to Vaughan,   et al.

Title: Bracket assembly having a plurality of plates for a dynamoelectric machine
Patent Number: 6,906,440 Issued on 06/14/2005 to Fife

Title: Electrolytic capacitor and a fabrication method therefor
Patent Number: 6,894,889 Issued on 05/17/2005 to Yano,   et al.

Title: Apparatus for event log management
Patent Number: 7,155,514 Issued on 12/26/2006 to Milford

Title: Holey optical fibres
Patent Number: 6,968,107 Issued on 11/22/2005 to Belardi,   et al.

Title: Audio apparatus for processing voice and audio signals
Patent Number: 7,154,419 Issued on 12/26/2006 to Mukai

Title: Ground plane compensation for mobile antennas
Patent Number: 7,154,444 Issued on 12/26/2006 to Sievenpiper

Title: Process for patterning high-k dielectric material
Patent Number: 7,148,114 Issued on 12/12/2006 to Chiu,   et al.

Title: Structure and method for transverse field enhancement
Patent Number: 6,891,750 Issued on 05/10/2005 to Chen

Title: Adjustable handle assembly for stroller or toy stroller
Patent Number: 7,017,936 Issued on 03/28/2006 to Huang

Title: Power semiconductor module and cooling element for holding the power semiconductor module
Patent Number: 6,791,183 Issued on 09/14/2004 to Kanelis

Title: Mounting structures for a high-frequency heating apparatus
Patent Number: 6,906,301 Issued on 06/14/2005 to Yamaguchi

Title: Lens apparatus, projection type optical apparatus and projection type image display apparatus
Patent Number: 7,019,916 Issued on 03/28/2006 to Suzuki

Title: Email attachment management in a computer system
Patent Number: 7,155,481 Issued on 12/26/2006 to Prahlad,   et al.

Title: Arc welding method
Patent Number: 6,906,284 Issued on 06/14/2005 to Kim,   et al.

Title: Semiconductor devices with reference voltage generators and termination circuits configured to reduce termination mismatch
Patent Number: 7,034,567 Issued on 04/25/2006 to Jang

Title: Movable contact unit having press-down projections
Patent Number: 6,906,274 Issued on 06/14/2005 to Ito,   et al.

Title: Group III-nitride growth on Si substrate using oxynitride interlayer
Patent Number: 6,906,351 Issued on 06/14/2005 to Kryliouk,   et al.

Title: Molding apparatus for minimizing flash on sealing filter gasket
Patent Number: 6,830,443 Issued on 12/14/2004 to Coffey,   et al.

Title: Method for forming a liquid film on a substrate
Patent Number: 7,125,584 Issued on 10/24/2006 to Ito

Title: Chip mounting substrate, first level assembly, and second level assembly
Patent Number: 6,791,193 Issued on 09/14/2004 to Watanabe,   et al.

Title: Rotational cable shortening device
Patent Number: 7,028,580 Issued on 04/18/2006 to Brumberger,   et al.

Title: Endoglucanase gene promoter upregulated by nematodes
Patent Number: 6,906,241 Issued on 06/14/2005 to Davis,   et al.

Title: Detent escapement for timepiece
Patent Number: 7,192,180 Issued on 03/20/2007 to Hayek,   et al.

Title: Rotor balancing
Patent Number: 7,069,654 Issued on 07/04/2006 to Robbins

Title: Selectively handling data processing requests in a computer communications network
Patent Number: 7,155,478 Issued on 12/26/2006 to Ims,   et al.

Title: Rotating station for reels
Patent Number: 6,962,307 Issued on 11/08/2005 to Scheurer

Title: Fuel evaporator
Patent Number: 6,899,741 Issued on 05/31/2005 to Nakamura,   et al.

Title: Process for fractionation/concentration to reduce the polydispersivity of polymers
Patent Number: 6,906,168 Issued on 06/14/2005 to Khouri,   et al.

Title: Bicycle hub dynamo assembly
Patent Number: 7,048,546 Issued on 05/23/2006 to Endo

Title: Composition for the dyeing of human hair
Patent Number: 7,056,352 Issued on 06/06/2006 to Lorenz,   et al.

Title: Printed circuit board for a three-phase power device having embedded directional impedance control channels
Patent Number: 7,154,196 Issued on 12/26/2006 to Sparling,   et al.

Title: Attache style toolbox with an outer frame
Patent Number: 6,971,517 Issued on 12/06/2005 to Chen

Title: Non-contacting compliant torque sensor
Patent Number: 6,851,324 Issued on 02/08/2005 to Islam,   et al.

Title: Roofing granules
Patent Number: 7,060,658 Issued on 06/13/2006 to Joedicke

Title: Eccentricity compensation in a web handling system
Patent Number: 6,831,801 Issued on 12/14/2004 to Chliwnyj,   et al.

Title: Thin film magnetic memory device conducting read operation by a self-reference method
Patent Number: 7,057,925 Issued on 06/06/2006 to Ooishi,   et al.

Title: Command processing method and radio communication apparatus
Patent Number: 7,020,117 Issued on 03/28/2006 to Nire

Title: Treatment of hypertension
Patent Number: 7,155,284 Issued on 12/26/2006 to Whitehurst,   et al.

Title: Louver and louver curtain constructed therefrom
Patent Number: 6,830,091 Issued on 12/14/2004 to Hintennach,   et al.

Title: Drum type washing machine
Patent Number: 7,010,942 Issued on 03/14/2006 to Ryu,   et al.

Title: Illumination device and liquid crystal display device
Patent Number: 6,971,782 Issued on 12/06/2005 to Nagakubo,   et al.

Title: Folding reclining chair with arms
Patent Number: 7,017,984 Issued on 03/28/2006 to Chen

Title: Three-dimensional data generating device
Patent Number: 6,943,792 Issued on 09/13/2005 to Sakakibara

Title: Wiper sheet packaging system
Patent Number: 6,978,889 Issued on 12/27/2005 to McBride

Title: Non-volatile memory device and manufacturing method and operating method thereof
Patent Number: 7,154,142 Issued on 12/26/2006 to Wong,   et al.

Title: Information recording medium, information recording method, information recording apparatus, information reproduction method, and information reproduction apparatus
Patent Number: 7,155,566 Issued on 12/26/2006 to Sasaki,   et al.

International font measurement system and method Number:7,385,606 from the United States Patent and Trademark Office (PTO) owispatent

Home    Author Login    Submit Article    Article Search    Add Your Link    Edit Your Link    Contact Us    Advertising    Disclaimer

   

 
Web LinkGrinder.com

Top Breaking News
     Greek, Cypriot Leaders Resume Unification Talks in Nicosia by Nathan Morley
     Indonesia Tobacco Sales Grow, Raising Health Fears
     South Korea Allows Top Defector to Travel Overseas by VOA News

Title: International font measurement system and method

Abstract: A system and method automatically determines appropriate font characteristics for different display mediums and different readability parameters in any language. A method includes determining font characteristics by receiving data including a font identifier and a language identifier, producing a representative line of type in the identified language and with the identified font, measuring characteristics of the representative line of type, and normalizing the measurements across a plurality of fonts and a plurality of languages. In an embodiment, an international translator is used to receive the data including the font identifier and the language identifier and the received data can include text in a language. The normalizing refers to widths of portions of the text called a "black river," which is used to identify plotted measured characteristics to determine an average grayness across a perpendicular to a reading direction. The average grayness enables comparisons to pluralities of fonts and languages.

Patent Number: 7,385,606 Issued on 06/10/2008 to Everett,   et al.


Inventors: Everett; Nathan W. (Bellevue, WA), Brown; David C. (Redmond, WA)
Assignee: Microsoft Corporation (Redmond, WA)
Appl. No.: 10/323,059
Filed: December 18, 2002


Current U.S. Class: 345/467
Field of Search: 345/467-469,469.1,470,471 715/517,529


References Cited [Referenced By]

U.S. Patent Documents
4700400 October 1987 Ross
4851825 July 1989 Naiman
5335294 August 1994 Niki
5416898 May 1995 Opstad et al.
5513277 April 1996 Huttenlocher
5740456 April 1998 Harel et al.
5966473 October 1999 Takahashi et al.
6064767 May 2000 Muir et al.
6073148 June 2000 Rowe et al.
6075892 June 2000 Fan et al.
6256650 July 2001 Cedar et al.
6282327 August 2001 Betrisey et al.
6310624 October 2001 Watanabe
6320587 November 2001 Funyu
6330577 December 2001 Kim
6601021 July 2003 Card et al.
6661921 December 2003 Tanioka
6683611 January 2004 Cleveland
6750875 June 2004 Keely, Jr. et al.
6931415 August 2005 Nagahara
6975761 December 2005 Swann et al.
Foreign Patent Documents
0949801 Oct., 1999 EP
7049865 Feb., 1995 JP
9146520 Jun., 1997 JP

Other References

Arditi, Aries, et al. "Reading with fixed and variable character pitch". Oct. 1990. Journal of the Optical Society of America. vol. 7, No. 10. pp. 2011-2015. Accessed at http://www.opticsinfobase.org/viewmedia.cfm?id=3893& seq=0. cited by examiner .
Bos et al., Cascading Style Sheets, level 2, CSS2 Specification, 25 pages. cited by other .
Delaplain et al., Line Spacing Between Successive Lines of Fonts Having Differing Heights, IBM Technical Disclosure Bulletin, Sep. 1984, vol. 27, No. 4B, p. 2374. cited by other .
Holleran et al., Vertical Spacing of Computer-Presented Text, 1993, ACM Press, Conference on Human Factors in Computing Systems, Interact '93 and Chi '93 Conference Companion on Human Factors in Computing Systems, pp. 179-180, Amsterdam, The Netherlands, XP002344749 p. 17-, irft-hand column, lines 29-37, p. 180, right-hand column, line 10-23. cited by other .
IBM, Character Size Measurement, retrieved from the Internet Sep. 13, 2005: http://web.archive.org/web/20020220160337/http://www.pc.ibm.com/ww/- healthycomputing/vdc-org.html]p. 1, lines 23-28. cited by other .
Kahn et al., Principles of Typography for User Interface Design, Interactions, Nov. 1998-Dec. 1998, pp. 15-29. cited by other .
Meko, Ltd. Flat Panels & The European Display Screen Directive, A Question of Character, Sep. 2002. cited by other .
Thornton, James., Font Specification Options, Apr. 2, 2002, retrieved from the Internet Sep. 15, 2005, http://jamesthornton.com/emacs/node/emacs.sub.--537.html, 2 pages. cited by other .
Zramdini et al., Optical font Recognition from Projection Profiles, Electronic Publishing, vol. 6 No. 3, Sep. 1993 pp. 249-260. cited by other .
Marc Brysbaert et al.; "The Right Visual Field Advantage and the Optimal Viewing Position Effect: On the Relation Between Foveal and Parafoveal Worg Recognition," 1996 (pp. 385 through 395). cited by other .
Helmut T. Zwahlen et al.; "Legibility of Text on Traffic Signs as a Function of Luminance and Size," 2001 (16 pages). cited by other .
Tatjana A. Nazir and Arthur M. Jacobs; Letter legibility and visual word recognition; Jun. 12, 2001; pp. 1-22; http://nivea.psycho.univ-paris5.fr/Papillon/Papillon.html. cited by other .
James J. Clark and J. Kevin O'Regan; Word Ambiguity and the Optimal Viewing Position in Reading; Jun. 9, 1998; pp. 1-49; Preprint submitted to Elseview Preprint; Laboratoire de Psychologie Experimentale Centre National de la Recherche Scientifique Universite Rene Descartes EPHE, EHESS, Paris, France. cited by other .
H. Alvestrand; Tags for the Identification of Languages; Mar. 1995; pp. 1-8; http://www.ietf.org/rfc/rfc1766.txt. cited by other .
ISO 639-2; Codes for the Representation of Names of Languages; Aug. 14, 2002; pp. 1-16; http://lcweb.loc.gov/standards/iso639-2/langcodes.html. cited by other .
Dhanya, et al., "Script Identification in Printed Bilingual Documents", Sadhana, vol. 27, Part 1, Feb. 2002, pp. 73-82. cited by other .
Eglin, et al., "Printed Text Featuring Using the Visual Criteria of Legibility and Complexity", Proceedings Patterns Recognition, vol. 1, Aug. 1998, pp. 03. cited by other .
Hochberg, et al., "Automatic Script Identification from Images Using Cluster-Based Templates", Proceeding Document Analysis and Recognition, vol. 1, Aug. 1995, IEEE, 1995, pp. 378-381. cited by other.

Primary Examiner: Tung; Kee M.
Assistant Examiner: Richer; Aaron M
Attorney, Agent or Firm: Lee & Hayes, PLLC

Claims



We claim:

1. A method for determining font display characteristics of any language, the method comprising: receiving data including a font identifier and a language identifier; producing a representative line of type in the identified language and with the identified font; measuring characteristics of the representative line of type; and normalizing the measurements across a plurality of fonts and a plurality of languages, wherein the normalizing includes: identifying a row of pixels with a highest black to total ratio; normalizing the row of pixels to a black designation; adjusting each remaining row of pixels according to the normalized row; and determining an average grayness for the representative line of type using the normalized and adjusted rows of pixels, the average grayness enabling comparisons to the plurality of fonts and languages.

2. The method of claim 1 wherein the measuring characteristics of the representative line of type includes: measuring a ratio of black to total pixels in a plurality of pixel rows in the representative line of type; identifying a row with the highest ratio of black to total; and using the identified row to identify font characteristic in the representative line of text as compared to the plurality of fonts and languages.

3. The method of claim 2, wherein the measuring characteristics of the representative line of type further includes: identifying a font height; and within the font height, identifying a first portion including the row with the highest ratio of black to total, the first portion including a first row of pixels and a last row of pixels that are darker than an average pixel row.

4. The method of claim 3, wherein the measuring characteristics of the representative line of type further includes: identifying a second portion above the first portion; and identifying a third portion below the first portion.

5. The method of claim 1 wherein the normalizing the measurements across a plurality of fonts and languages includes; plotting the measured characteristics to determine an average grayness across a perpendicular to a reading direction.

6. The method of claim 1 further comprising graphing the measurements, the graphing enabling identification of alignment points and peaks of darkness.

7. The method of claim 1 wherein: the receiving data including the font identifier and the language identifier is by an international translator, the received data including text in a language, the language identifier including one or more languages to which the international translator translates the text; the produced representative line of type in the identified language and with the identified font is a stored line of type whose characteristics are applied to the translated text.

8. A computer readable storage medium having computer-executable instructions for determining font characteristics of text organized in clusters, each cluster being a rendering unit of the string of text identified by an amount of printed matter between points where a cursor can be inserted therein, the text having a font size, the font size being in terms of an em, each em identified by a square of the type, the instructions comprising the steps of: receiving data including a font identifier and a language identifier; producing a representative line of type in the identified language and with the identified font; measuring characteristics of the representative line of type; and normalizing the measurements across a plurality of fonts and languages, wherein the normalizing includes: identifying a row of pixels with a highest black to total ratio; normalizing the row of pixels to a black designation; adjusting each remaining row of pixels according to the normalized row; and determining an average grayness for the representative line of type using the normalized and adjusted rows of pixels, the average grayness enabling comparisons to the plurality of fonts and languages.

9. The computer readable storage medium of claim 8 wherein the measuring characteristics of the representative line of type includes: measuring a ratio of black to total pixels in a plurality of pixel rows in the representative line of type; identifying a row with the highest ratio of black to total; using the identified row to identify font characteristic in the representative line of text as compared to the plurality of fonts and languages; identifying a font height; and within the font height, identifying a first portion including the row with the highest ratio of black to total, the first portion including a first row of pixels and a last row of pixels that are darker than an average pixel row; identifying a second portion above the first portion; and identifying a third portion below the first portion.

10. The computer readable storage medium of claim 8 wherein the normalizing the measurements across a plurality of fonts and languages includes: plotting the measured characteristics to determine an average grayness across a perpendicular to a reading direction.

11. The computer readable storage medium of claim 8 further comprising: using the font characteristics of the text to determine a line height and a font size appropriate for a predetermined language and font.

12. A system for determining font characteristics of any language, the system comprising one or more processors, a memory coupled to at least one of the processors, the memory encoded therein with processors executable modules, wherein the executable processing modules comprise: an application including a property sheet component and a property values component; and a layout engine coupled to the application, the layout engine configured to receive data including a font identifier and a language identifier, the layout engine including: a structure, layout and input filter configured to receive the data; a reading metrics engine coupled to the structure, layout and input filter, the reading metrics engine configured to determine visual readability parameters appropriate for the application; and a text engine configured to: produce a representative line of type in the identified language and with the identified font; measure characteristics of the representative line of type, wherein the text engine configured to measure characteristics of the representative line of type further includes: means for measuring a ratio of black to total pixels in a plurality of pixel rows in the representative line of type; means for identifying a row with the highest ratio of black to total; means for using the identified row to identify font characteristic in the representative line of text as compared to the plurality of fonts and languages; means for identifying a font height; means within the font height for identifying a first portion including the row with the highest ratio of black to total, the first portion including a first row of pixels and a last row of pixels that are darker than an average pixel row; means for identifying a second portion above the first portion; means for identifying a third portion below the first portion; and normalize the measurements across a plurality of fonts and a plurality of languages, the normalized measurements including font characteristics configured to be provided to the reading metrics engine to be used to determine the readability parameters.

13. The system of claim 12 wherein the layout engine includes an international translator configured to receive one or more language identifiers from the application and a text for translation, the international translator configured to generate the data for the structure and layout input filter.

14. The system of claim 12 wherein the text engine is configured to graph the measurements to enable identification of alignment points and peaks of darkness.

15. A system for determining font characteristics of any language, the system comprising one or more processors, a memory coupled to at least one of the processors, the memory encoded therein with processors executable modules, wherein the executable processing modules comprise: an application including a property sheet component and a property values component; and a layout engine coupled to the application, the layout engine configured to receive data including a font identifier and a language identifier, the layout engine including: a structure, layout and input filter configured to receive the data; a reading metrics engine coupled to the structure, layout and input filter, the reading metrics engine configured to determine visual readability parameters appropriate for the application; and a text engine configured to: produce a representative line of type in the identified language and with the identified font; measure characteristics of the representative line of type; and normalize the measurements across a plurality of fonts and a plurality of languages, the normalized measurements including font characteristics configured to be provided to the reading metrics engine to be used to determine the readability parameters, wherein the text engine is configured to normalize the measurements across a plurality of fonts and languages, the text engine including: means for plotting the measured characteristics to determine an average grayness across a perpendicular to a reading direction; means for identifying a row of pixels with a highest black to total ratio; means for normalizing the row of pixels to a black designation; means for adjusting each remaining row of pixels according to the normalized row; and means for determining an average grayness for the representative line of type using the normalized and adjusted rows of pixels, the average grayness enabling comparisons to the plurality of fonts and languages.

16. The system of claim 15 wherein the layout engine includes an international translator configured to receive one or more language identifiers from the application and a text for translation, the international translator configured to generate the data for the structure and layout input filter.

17. The system of claim 15 wherein the text engine is configured to graph the measurements to enable identification of alignment points and peaks of darkness.

18. A system for determining font display characteristics of any language, the system comprising one or more processors, a memory coupled to at least one of the processors, the memory encoded therein with processors executable modules, wherein the executable processing modules comprise: a means for receiving data including a font identifier and a language identifier; a means for producing a representative line of type in the identified language and with the identified font; a means for measuring characteristics of the representative line of type; and a means for normalizing the measurements across a plurality of fonts and a plurality of languages, wherein the means for normalizing includes: identifying a row of pixels with a highest black to total ratio; normalizing the row of pixels to a black designation; adjusting each remaining row of pixels according to the normalized row; and determining an average grayness for the representative line of type using the normalized and adjusted rows of pixels, the average grayness enabling comparisons to the plurality of fonts and languages.

19. The system of claim 18 wherein the means for measuring characteristics of the representative line of type includes: measuring a ratio of black to total pixels in a plurality of pixel rows in the representative line of type; identifying a row with the highest ratio of black to total; and using the identified row to identify font characteristic in the representative line of text as compared to the plurality of fonts and languages.

20. The system of claim 19, wherein the means for measuring characteristics of the representative line of type further includes: identifying a font height; and within the font height, identifying a first portion including the row with the highest ratio of black to total, the first portion including a first row of pixels and a last row of pixels that are darker than an average pixel row.

21. The system of claim 20, wherein the means for measuring characteristics of the representative line of type further includes: identifying a second portion above the first portion; and identifying a third portion below the first portion.

22. The system of claim 18 wherein the means for normalizing the measurements across a plurality of fonts and languages includes: plotting the measured characteristics to determine an average grayness across a perpendicular to a reading direction.

23. The system of claim 18 further comprising a means for graphing the measurements, the means for graphing enabling identification of alignment points and peaks of darkness.

24. The system of claim 18 wherein: The means for receiving data including the font identifier and the language identifier is by an international translator, the received data including text in a language, the language identifier including one or more languages to which the international translator translates the text; the produced representative line of type in the identified language and with the identified font is a stored line of type whose characteristics are applied to the translated text.
Description



FIELD OF THE INVENTION

This invention relates generally to font, text and character alignment, and more particularly, to an international automatic font measurement system and method.

BACKGROUND OF THE INVENTION

"They said: Come, let us make a city and a tower, the top whereof may reach to heaven; and let us make our name famous before we be scattered abroad into all lands." The work was soon fairly under way; "and they had brick instead of stones, and slime (asphalt) instead of mortar." But God confounded their tongue, so that they did not understand one another's speech, and thus scattered them from that place into all lands, and they ceased to build the city. Genesis 11:1-9. Since the fall of the Tower of Babel, finding methods of communicating with different languages and their associated writing systems has been a challenge.

With the onset of worldwide globalization, overcoming this challenge has become paramount. However, there are complex cultural differences between nations that have prevented a fully integrated global society. In the computer industry, these differences cause problems with international cooperation due to the tethers of multi-language display and interchange.

One step toward meeting the challenge of a multi-national computing industry was the Unicode Consortium formed in 1988, which developed a global character identification standard. The goal of the consortium was to develop a standard that allows a unique identification of characters for every language. The consortium developed the Unicode Standard, now in version 2.1, available from Addison-Wesley Developers Press 1997, (available at http://www.unicode.org).

Unfortunately, being able to print and display a character from a choice of many languages is only a small step toward meeting the international challenge. An issue of equal and oft times more importance is the layout of script, the characteristics of fonts, and the general requirements of text that make text readable. However, typefaces and script forms of current languages are different, eclectic and do not follow the same rules. For example, a typical English font, Times New Roman, follows a typographical formula that is uniquely Roman based wherein line height is typically set to be 120% of the size of the font in points. Terminology is based on Roman characters. The concepts of Roman type include a base line, a cap height, an ascender height, a descender height and line height.

Written languages do not follow the same rules for font characteristics such as a default line length or typeface. Rather, each language and script is culturally derived from a different basis. For example, some Asian scripts use glyphs that are pictorially derived and other Asian scripts read from right to left and are symbolically derived. Even within the same language, scripts and fonts do not follow a predetermined characteristic formula. Finding a formula for determining default font characteristics seems an impossible task. Rather than finding a formula appropriate for all languages, graphic designers have relied on visually altering line length, typeface and line heights, altering each script such that a rendering is pleasing to the eye and meets readability requirements known to the graphic designer.

Currently, there is no solution for determining font characteristics that applies to all known scripts. Every script is culturally derived and has a different basis and completely different concepts. Even if a formula worked for a particular script in a particular language within each script, there is not a linear relationship to many characteristics of the script. For example, any changes to font size or line length in the same script require changes in line height that take into account readability. Graphic designers typically visually alter line length, typeface, and line height. Longer lines of type require more line height for readability. Also, the size of a font is relevant to line height, but a larger font does not require the same line height as a smaller font.

Because there is no linear or obvious relationship between line height, line length and changing font sizes, many computer applications require manual changes. Further complicating the layout issues, graphic designers do not know the rendering device of type due to the plethora of rendering computing machines. A typed page designed for a web page, for example, can be rendered on any size screen, leaving the optimum reading sizes for line length, line height and font size as an unknown. What is needed is a method for automatically determining those characteristics that currently require a graphics designer. An automatic method and system that can compute readability parameters, such as line height, font size and line length is needed so that text can be rendered on any display, in any language and in any size without manual adjustment.

BRIEF SUMMARY OF THE INVENTION

Accordingly, a system and method automatically determines appropriate font characteristics for different display mediums and different readability parameters in any language. An embodiment is directed to a method for determining font characteristics by receiving data including a font identifier and a language identifier, producing a representative line of type in the identified language and with the identified font, measuring characteristics of the representative line of type, and normalizing the measurements across a plurality of fonts and a plurality of languages. More specifically, measuring characteristics of the representative line of type can include measuring a ratio of black to total pixels in a plurality of pixel rows in the representative line of type, identifying a row with the highest ratio of black to total, and using the identified row to identify font characteristic in the representative line of text as compared to the plurality of fonts and languages.

In an embodiment, the measuring characteristics of the representative line of type further includes identifying a font height, and within the font height, identifying a first portion including the row with the highest ratio of black to total, the first portion including a first row of pixels, a last row of pixels that are darker than an average pixel row, identifying a second portion above the first portion, and identifying a third portion below the first portion. In the discussion that follows, these portions are referred to as widths related to a "black river", which is a term that is used to identify plotted measured characteristics to determine an average grayness across a perpendicular to a reading direction. The average grayness enables comparisons to the plurality of fonts and languages.

In one embodiment, an international translator is used to receive the data including the font identifier and the language identifier and the received data can include text in a language. The language identifier can include one or more languages to which the international translator translates the text.

Another embodiment is directed to a method for international text layout, wherein the text layout relates to a string of text being rendered in a font size in terms of an em, the method uses measured characteristics of a normalized representative line of international text in a predetermined font to determine an optimal font size, line height, number of columns and line length. The characteristics of a normalized representative line of international text provide a number of clusters per fixation and a number of clusters per em.

An embodiment directed to a system for international text layout of text in a font includes a structure and layout input filter configured to hold one or more text parameters, a reading metrics engine coupled to the data structure, the reading metrics engine configured to receive the one or more parameters of the text, and a text engine coupled to the reading metrics engine. The text engine includes a module configured to determine a graphic density for the font, which is an average grayness of the text rendered in the font in an identified language. The type characteristics determined by the text engine include values representing clusters per em, a type depth, a type width, a width of a darkest horizontal portion of the type, and a depth of the darkest horizontal portion of the type. Another system according to an embodiment includes an international translator configured within a layout engine and coupled to an application. The international translator receives data from the application and provides translated text with appropriate text layout characteristics for the translated text to the application. In an embodiment, the international translator is configured to receive one or more language identifiers and text from an application and to provide the translated text, and determine parameters necessary for the structure and layout input filter to create one or more data structures operable with the reading metrics engine and the text engine. The international translator can be an external international translator called from the application. The application can be a server or a client machine, and display the translated text according to the language identifiers with readability parameters appropriate for any display that calls the application. The application can also be an Internet application accessible to a plurality of computers, the application receiving requests to provide translated text and transmitting the translated text appropriately formatted for each display of each of the plurality of computers and in a language requested by each of the plurality of computers.

Additional features and advantages of the invention will be made apparent from the following detailed description of illustrative embodiments, which proceeds with reference to the accompanying figures.

BRIEF DESCRIPTION OF THE DRAWINGS

While the appended claims set forth the features of the present invention with particularity, the invention, together with its objects and advantages, may be best understood from the following detailed description taken in conjunction with the accompanying drawings of which:

FIG. 1 is a block diagram generally illustrating an exemplary computer system on which the present invention resides;

FIG. 2 is a block diagram illustrating an exemplary data flow within a computer system in accordance with an embodiment of the present invention.

FIG. 3 is a more detailed block diagram illustrating the data flow shown in FIG. 2 in accordance with an embodiment of the present invention.

FIG. 4 is a flow diagram illustrating a method for determining international text characteristics in accordance with an embodiment of the present invention.

FIG. 5 is a flow diagram illustrating a more detailed method for determining international text characteristics in accordance with an embodiment of the present invention.

FIG. 6 is a flow diagram illustrating a more detailed method for determining international text characteristics in accordance with an embodiment of the present invention.

FIG. 7 illustrates two pictures representing graphs and text resulting from applying methods in accordance with an embodiment of the present invention.

FIG. 8 is a flow diagram illustrating a method for automatically determining line height and font size in accordance with an embodiment of the present invention.

FIG. 9A illustrates a graph resulting from implementing a method for determining font characteristics in accordance with an embodiment of the present invention.

FIG. 9B illustrates another graph resulting from implementing a method for determining font characteristics in accordance with an embodiment of the present invention.

FIG. 10 is a flow diagram illustrating a method for determining font size in accordance with an embodiment of the present invention.

FIG. 11 is a graph illustrating a curve appropriate for determining text characteristics in relation to viewing distance in accordance with an embodiment of the present invention.

FIG. 12 is a graph that illustrates how a sharpest focusable area is determined in accordance with an embodiment of the present invention.

FIG. 13 is a graph that illustrates how trigonometric functions apply to determine a sharpest focusable area in accordance with an embodiment of the present invention.

FIG. 14 is a flow diagram illustrating a method for automatically determining a minimum and maximum font size in accordance with an embodiment of the present invention.

FIG. 15 is a block diagram illustrating data flow used to determine a font size in accordance with an embodiment of the present invention.

FIG. 16 is a block diagram illustrating data flow used to determine text characteristics in accordance with an embodiment of the present invention.

FIG. 17 illustrates an example of a same font in different languages showing a width variance in accordance with an embodiment of the present invention.

FIG. 18 is a flow diagram illustrating a method for automatically scaling a font size in accordance with an embodiment of the present invention.

FIG. 19 is a flow diagram illustrating a method for adjusting line height based on a function of the number of clusters in a line in accordance with an embodiment of the present invention.

FIG. 20 is a graph illustrating empirically found line height possibilities for a given character size in points in accordance with an embodiment of the present invention.

FIG. 21 is a flow diagram illustrating a method for determining adjustments to a default line height in accordance with an embodiment of the present invention.

FIG. 22 is a block diagram illustrating data flow within a reading metrics engine in accordance with an embodiment of the present invention.

FIG. 23 is a graph illustrating line length determinations in accordance with an embodiment of the present invention.

FIG. 24 is a block diagram illustrating data flow using an international translator within a computer system in accordance with an embodiment of the present invention.

FIG. 25 is a flow diagram illustrating a method for using a translator in combination with embodiments in accordance with an embodiment of the present invention.

FIG. 26 is a flow diagram illustrating a method for using a translator within a layout engine in accordance with an embodiment of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Turning to the drawings, wherein like reference numerals refer to like elements, the invention is illustrated as being implemented in a suitable computing environment. Although not required, the invention will be described in the general context of computer-executable instructions, such as program modules, being executed by a personal computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. Moreover, those skilled in the art will appreciate that the invention may be practiced with other computer system configurations, including hand-held devices, multi-processor systems, microprocessor based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, and the like. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote memory storage devices.

FIG. 1 illustrates an example of a suitable computing system environment 100 on which the invention may be implemented. The computing system environment 100 is only one example of a suitable computing environment and is not intended to suggest any limitation as to the scope of use or functionality of the invention. Neither should the computing environment 100 be interpreted as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment 100.

The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.

The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.

With reference to FIG. 1, an exemplary system for implementing the invention includes a general purpose computing device in the form of a computer 110. Components of computer 110 may include, but are not limited to, a processing unit 120, a system memory 130, and a system bus 121 that couples various system components including the system memory to the processing unit 120. The system bus 121 may be any of several types of bus structures including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Associate (VESA) local bus, and Peripheral Component Interconnect (PCI) bus also known as Mezzanine bus.

Computer 110 typically includes a variety of computer readable media. Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 110. Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of the any of the above should also be included within the scope of computer readable media.

The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system 133 (BIOS), containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 131 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation, FIG. 1 illustrates operating system 134, application programs 135, other program modules 136, and program data 137.

The computer 110 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only, FIG. 1 illustrates a hard disk drive 141 that reads from or writes to non-removable, nonvolatile magnetic media, a magnetic disk drive 151 that reads from or writes to a removable, nonvolatile magnetic disk 152, and an optical disk drive 155 that reads from or writes to a removable, nonvolatile optical disk 156 such as a CD ROM or other optical media. Other removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like. The hard disk drive 141 is typically connected to the system bus 121 through a non-removable memory interface such as interface 140, and magnetic disk drive 151 and optical disk drive 155 are typically connected to the system bus 121 by a removable memory interface, such as interface 150.

The drives and their associated computer storage media discussed above and illustrated in FIG. 1, provide storage of computer readable instructions, data structures, program modules and other data for the computer 110. In FIG. 1, for example, hard disk drive 141 is illustrated as storing operating system 144, application programs 145, other program modules 146, and program data 147. Note that these components can either be the same as or different from operating system 134, application programs 135, other program modules 136, and program data 137. Operating system 144, application programs 145, other program modules 146, and program data 147 are given different numbers hereto illustrate that, at a minimum, they are different copies. A user may enter commands and information into the computer 110 through input devices such as a keyboard 162 and pointing device 161, commonly referred to as a mouse, trackball or touch pad. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, or the like. These and other input devices are often connected to the processing unit 120 through a user input interface 160 that is coupled to the system bus, but may be connected by other interface and bus structures, such as a parallel port, game port or a universal serial bus (USB). A monitor 191 or other type of display device is also connected to the system bus 121 via an interface, such as a video interface 190. In addition to the monitor, computers may also include other peripheral output devices such as speakers 197 and printer 196, which may be connected through a output peripheral interface 195.

The computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be another personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the personal computer 110, although only a memory storage device 181 has been illustrated in FIG. 1. The logical connections depicted in FIG. 1 include a local area network (LAN) 171 and a wide area network (WAN) 173, but may also include other networks. Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.

When used in a LAN networking environment, the personal computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the user input interface 160, or other appropriate mechanism. In a networked environment, program modules depicted relative to the personal computer 110, or portions thereof, may be stored in the remote memory storage device. By way of example, and not limitation, FIG. 1 illustrates remote application programs 185 as residing on memory device 181. It will be appreciated that the network connections shown are exemplary and other means of establishing a communications link between the computers may be used.

In the description that follows, the invention will be described with reference to acts and symbolic representations of operations that are performed by one or more computers, unless indicated otherwise. As such, it will be understood that such acts and operations, which are at times referred to as being computer-executed, include the manipulation by the processing unit of the computer of electrical signals representing data in a structured form. The manipulation transforms the data or maintains it at locations in the memory system of the computer, which reconfigures or otherwise alters the operation of the computer in a manner well understood by those skilled in the art. The data structures where data is maintained are physical locations of the memory that have particular properties defined by the format of the data. However, while the invention is being described in the foregoing context, it is not meant to be limiting as those of skill in the art will appreciate that various of the acts and operation described hereinafter may also be implemented in hardware.

In accordance with one important aspect of the invention, reference is made to FIG. 2, which represents a block diagram for client software, such as a Windows.RTM. client appropriate for implementing embodiments of the present invention. The block diagram shows Application 200, which could be any application running on computer 110 shown in FIG. 1. Appropriate application programs include, for example, Microsoft Word, Microsoft Publisher, QuarkXPress, Adobe InDesign and the like. Application 200 is shown including a property sheet 210. Property sheet 210 interacts with a layout engine 202 which can be within computer 110 or available via a client-server connection. Layout engine 202 can be a client application running on computer 110 or can be available via a network connection. Property sheet 210, within application 200, supplies property values to layout engine 202, which are received at structure and layout, input filter 230. In addition to structure and layout input filter 230, layout engine 202 also includes reading metrics engine 240 and text engine 250. The property sheet data structures include those elements required by layout engine 202 to provide an appropriate layout for rendering fonts and text for application 200. Structure and layout input filter 230 organizes the elements for input into reading metrics engine 240 and provides the input properties to reading metrics engine 240. Reading metrics engine 240 operates on the properties and sends data to text engine 250. Text engine 250 receives data including identifiers for font family data and identifiers for a language and outputs calculated data concerning text characteristics for use by reading metrics engine 240.

As described in more detail below, reading metrics engine 240 operates on input values to provide optimal typographic settings within given constraints from calling applications. Input constraints can include, but are not limited to, environmental constraints and design constraints. Environmental constraints can include magnification, screen size and resolution, reader optical enhancement, and reader distance. Design constraints can include font requirements, margin requirements, column requirements, and layout rectangle requirements. Within these constraints, reading metrics engine 240 provides settings including those for window, page and live matter sizes, margin widths, optimal column number, optimal column and gutter widths, and optimal font size and line height. The settings provided can be in pixel measurements or in point measurements according to design requirements. Advantageously, the settings output by reading metrics engine 240 are appropriate for known languages and fonts.

Referring now to FIG. 3, the block diagram of FIG. 2 is expanded in block diagram form to illustrate the data structure flow. FIG. 3 illustrates a property sheet 210, including items such as a page size 312, a page margin 314, a font family 316, a font size 318, a line height 320, a column count 322, a column width 334 and a page size 326. Also included in the property sheet 210 are values that cannot be overridden. The values that are adaptable via block 329 and those that are not are supplied to structure and layout input filter 230. More particularly, structure and layout input filter 230 includes element block 330 and text flow presenter 352. Element block 330 organizes the data into a data structure. An exemplary data structure is shown including font family 332, language 334, font size change 336, line height change 338, page margins 340, page margin flexibility 342 and column preference 344. The data is organized in element block 330 and provided as reading metrics engine input properties 346. Separately, text flow presenter 352 provides a window size 354 to reading metrics engine 240. Text flow presenter 352 can alternatively be a networked component, or a system component within computer 110. In one embodiment, layout engine 202 interacts with a media integration layer 360. Media integration layer 360 provides a media size 362 to reading metrics engine 240. One example of a media size 362 includes a size of a screen for computer 110 shown in FIG. 1.

Reading metrics engine 240 implements embodiments of the present invention as discussed in further detail below. In one embodiment, reading metrics engine 240 interacts with text engine 250 and element block 230. Element block 230 holds the reading metrics engine input properties 346. Element block 236 is coupled to text flow presenter 352. In one embodiment, element block 230 and text flow presenter 352 together form one component including a structure in element block 230 and a layout in the text flow presenter 252.

The reading metrics engine 240 receives the inputs and operates on them to produce useful settings for layout of text in the calling application. The settings can take into account user settings for sizings or default sizes can be automatically determined.

Text engine 250 is an important feature of the layout engine 202. Text engine 250 supplies inputs to reading metrics engine 240 that add language specific data concerning text values. Text engine 250 receives a font family identifier 364 and a language identifier 366. The output from text engine 250 includes measured values computed internally to the text engine 250. More specifically, as explained in further detail below in FIG. 5, text engine 250 measures the ratio of black and white pixels in each row of pixels in a rendered line of type and provides those measurements using terms that identify characteristics of a representative line of text in the font and language provided. These text measurements 368 are provided to reading metrics engine 240. Reading metrics engine 240 applies equations and the like to the measurements and the input properties 346 to provide output property values 380 including page size 382, page margins 384, font family 386, font size 388, line height 389, column gap 390, image width 392, column width 394, column counts 396 and text indent 398. These properties are returned to the calling application 200.

Referring now to FIG. 4 in combination with FIG. 3, a method of determining text layout properties according to an embodiment is illustrated in a flow diagram. The method relates to the functions performed in reading metrics engine 240 and text engine 250 shown in FIGS. 2 and 3. Specifically, block 410 provides for receiving data about an environment for an international text layout. As shown in FIG. 3, the data can include elements from one or more of property sheet 210, text flow presenter 252 and text engine 250. The data about the environment includes data concerning the rendering medium, such as screen size, paper size and the like as well as user defined or system required parameters concerning margins, font sizes, columns, line height, line length and language. Block 420 provides for operating on the data using measured characteristics of a normalized representative line of international text in a predetermined font and measured characteristics of the environment. The characteristics of a normalized representative line of international text are measured in text engine 250. Reading metrics engine 240 can be coupled to text engine 250 or can call text engine 250 via an application program interface (API). The environmental characteristics are measured in reading metrics engine 240. After receiving the measured characteristics of a normalized representative line of international text, reading metrics engine 240 performs a plurality of operations on received a calculated data. The output of the reading metrics engine is provided to calling application 200.

The operation of text engine 250 is described in further detail in flow diagram form in FIGS. 5 and 6. As shown, text engine 250 receives a font family identifier 364 and a language identifier 366 in block 510. In block 520, text engine measures characteristics of a representative line of type in the identified language and in the identified font. Advantageously, the measurements provided allow unbiased determinations of font sizes and line heights for any given language and font, in any given layout. In block 530, text engine 250 normalizes the measurements across a plurality of fonts and languages. The measurements are then used to determine appropriate sizings.

For purposes of this disclosure, terms for the sizings include, but are not limited to, line height, which is the distance from the baseline of one line of type to the baseline of the next line. A baseline is the perceived line on which characters in a writing system sit, or from which they hang. For English characters, a baseline refers to an imaginary line on which the upper and lower case characters sit. An X-height refers to a standard height of lower case letters, approximately equivalent to the height of a lowercase x in the font. A cap-height refers to the height of capital letters in a line of type, not equal to, but often equated with the ascender height. In some fonts the ascenders are taller or shorter than the height of most capital letters. An ascender is the part of lower case letters l, t, f, b, d, h, k that extend above the x-height. Descender refers to the part of lower case letters g, j, p, q, y that extend below the baseline.

An em is a unit of measurement equal to the size of the font. Thus, em is a variable unit that changes whenever the font size changes. An em for purposes of this disclosure is the square of the type being measured. For example, if the font is rendered in 12-point type, the em is 12 points high and 12 points wide. If the font is rendered in 100-point type, the em is 100 points high and 100 points wide. Therefore, the em is used as a non-representational size unit for the type and is based on the way the type is designed, not on physical characteristics. As a result, some font designs may have ink that lies outside the em, such as Thai, and others take considerably less space than the em, such as Korean.

A "cluster," for purposes of this disclosure, refers to a rendering unit of the analyzed font and text. Specifically, a cluster is printed matter between points where a cursor may be inserted in the line of electronic text. The term cluster is ubiquitous because it is identified by a lack of space on a line and not by keystrokes, characters, or glyphs, and, therefore, appropriate for all languages. In Latin fonts, the cluster and the character may be equivalent.

Referring now to FIG. 6, the method of FIG. 5 is described in further detail. The methods described in FIG. 6 provide a numerical characterization of the grayness of any type of text in any font and in any language. The numerical characterization is based on what a reader sees when type is laid out on a page, i.e., a number of dark lines along which the eye follows in the act of reading. Because the size of these lines and the space between them vary with differing writing systems, script types, languages and cultures, the measurements are designed to be appropriate for any writing system in any language. The inked space in a line of text is referred to herein as a "black river." Specifically, the black river refers to the total space taken by ink in a single line of text of the given font and language including the highest and lowest points of ink in a representative line of type.

The methods in which the black river is measured are described in FIG. 6. After receiving the font family identifier and language identifier, as shown in block 610, text engine 250 measures ratios of black to total pixels in a plurality of pixel rows in the representative line of type. In one embodiment, text engine 250 measures the ratio of black to total pixels in each row of pixels in the rendered line of type. After each row of pixels that has black pixels in it has been measured, the row with the highest ratio of black to total is normalized to black as shown in block 620. The measurements of all other rows are normalized to that black point. The normalization enables equivalent measurements from fonts of various weights, such that the black point of the font can be normalized across all fonts. For example, a darkest part of the black river, as measured in 1/200th of an em, is considered to be 100% black, no matter what degree of blackness it is in reality. All other parts of the black river are measured for gray depth as a value between 0% (white) and 100% (normalized black, or the darkest part of the river).


Free Web Sudoku Puzzles.
Solve with your browser.
3       9   7    
1   7 4          
  6   5     3 4  
    1            
4 2     6     1 3
            5    
  4 3     6   7  
          7 8   9
    8   2       5
What is it?



Add Your Site · Terms Of Service · Privacy Policy


DISCLAIMER
Linkgrinder is a free service that searches the Internet and indexes all files found so that you may search quickly and easily for shared files. These files are created and made available individually by users whose identity we are not aware of and who we have no control over. In essence we function like a search engine tool; these files ARE NOT STORED OR SERVED BY OUR NETWORK. We are not responsible for any materials obtained by using our service. We do not monitor any of the contents of these files. These files may contain viruses, illegal materials, materials inappropriate for minors, offensive files and the like. BY USING OUR SERVICE, YOU ASSUME FULL RESPONSIBILITY FOR DOWNLOADING THESE MATERIALS AND WILL INDEMNIFY US FOR ANY DAMAGES THAT MAY BE INCURRED.

For More Specific Information VIEW OUR TERMS OF SERVICE.

Thank you and Enjoy!