Rendering a text image following a line
First Claim
1. A computer-implemented method for rendering an image on a display device, comprising:
- determining, using a computer device, a line within the image along which to render a text string that is stored as a set of pixelated text characters within an image lookup table;
determining, using the computer device, a plurality of line segments associated with the line and a range associated with each line segment, wherein at least two sequential line segments of the plurality of line segments are at an angle with each other;
forming, using the computer device, a text box for each of the plurality of line segments, each of the text boxes being oriented to draw text in an upright position along an associated line segment, the text box having a horizontal component along the range of the line segment and a vertical component perpendicular to the range of the line segment;
selecting, using the computer device, one of the text boxes in which to render a text character of the text string, wherein the one of the text boxes is associated with one of the at least two sequential line segments that are at an angle with each other;
selecting, using the computer device, one of the text characters from the text string stored as a set of pixelated text characters within the image lookup table;
determining, using the computer device, if a center of the one of the text characters, when rendered in the one of the text boxes on the image, will be within the range of the line segment associated with the one of the text boxes; and
rendering, using the computer device, the one of the text characters on the display device using the one of the text boxes if a center of the one of the text characters when rendered in the one of the text boxes will be within the range of the line segment associated with the one of the text boxes; and
not rendering the one of the text characters on the display device using the one of the text boxes if a center of the one of the text characters when rendered in the one of the text boxes will not be within the range of the line segment associated with the one of the text boxes.
2 Assignments
0 Petitions
Accused Products
Abstract
A graphics or image rendering system, such as a map image rendering system, receives image data from an image database in the form of vector data that defines various image objects, such as roads, geographical boundaries, etc., and textures defining text strings to be displayed on the image to provide, for example, labels for the image objects. The imaging rendering system renders the images such that the individual characters of the text strings are placed on the image following a multi-segmented or curved line. This rendering system enables text strings to be placed on a map image so that the text follows the center line of a curved or angled road or other image feature without knowing the specifics of the curvature of the line along which the text will be placed when creating the texture that stores the text string information. This feature provides enhanced visual properties within a map image as it allows, for example, road names to be placed anywhere inside a road following the curvature of the road, thus providing a pleasing visual effect within the map image.
-
Citations
39 Claims
-
1. A computer-implemented method for rendering an image on a display device, comprising:
-
determining, using a computer device, a line within the image along which to render a text string that is stored as a set of pixelated text characters within an image lookup table; determining, using the computer device, a plurality of line segments associated with the line and a range associated with each line segment, wherein at least two sequential line segments of the plurality of line segments are at an angle with each other; forming, using the computer device, a text box for each of the plurality of line segments, each of the text boxes being oriented to draw text in an upright position along an associated line segment, the text box having a horizontal component along the range of the line segment and a vertical component perpendicular to the range of the line segment; selecting, using the computer device, one of the text boxes in which to render a text character of the text string, wherein the one of the text boxes is associated with one of the at least two sequential line segments that are at an angle with each other; selecting, using the computer device, one of the text characters from the text string stored as a set of pixelated text characters within the image lookup table; determining, using the computer device, if a center of the one of the text characters, when rendered in the one of the text boxes on the image, will be within the range of the line segment associated with the one of the text boxes; and rendering, using the computer device, the one of the text characters on the display device using the one of the text boxes if a center of the one of the text characters when rendered in the one of the text boxes will be within the range of the line segment associated with the one of the text boxes; and
not rendering the one of the text characters on the display device using the one of the text boxes if a center of the one of the text characters when rendered in the one of the text boxes will not be within the range of the line segment associated with the one of the text boxes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. An image rendering engine, comprising;
-
a communications network interface; a processor; a memory coupled to the processor; a display device coupled to the processor; a first routine, stored in the memory, that executes on the processor to receive, via the communications network interface, a set of vector data comprising data defining one or more image objects and to obtain from the memory one or more text string lookup tables, wherein one of the text string lookup tables stores text characters of at least one text string as a set of pixelated text characters and encoding data defining the center position of each of a plurality of text characters associated with the text string; a second routine, stored in the memory, that executes on the processor to determine a plurality of line segments associated with a line along which the text string is to be rendered, and a range associated with each line segment, wherein at least two of the plurality of line segments are at an angle with each other; a third routine, stored in the memory, that executes on the processor to determine a text box for each of the plurality of line segments, each of the text boxes being oriented to draw text in an upright position along an associated line segment, the text box having a horizontal component along the range of the line segment and a vertical component perpendicular to the range of the line segment; and a fourth routine, stored in the memory, that executes on the processor to; select one of the text boxes in which to render a text character of the text string, wherein the one of the text boxes is associated with one of the at least two line segments that are at an angle with each other; select one or more pixels of a next one of the text characters of the text string; determine if a center of the next one of the text characters, when rendered in the selected one of the text boxes on the image, will be within the range of the line segment associated with the selected one of the text boxes; and render the pixels of the one of the text characters on the display device using the one of the text boxes if a center of the one of the text characters when rendered in the selected one of the text boxes will be within the range of the line segment associated with the selected one of the text boxes and not render the pixels of the one of the text characters on the display device using the one of the text boxes if a center of the one of the text characters when rendered in the one of the text boxes will not be within the range of the line segment associated with the one of the text boxes. - View Dependent Claims (14, 15, 16, 17, 18, 19)
-
-
20. A method of rendering text along a line within an image being rendered on a display device, comprising:
-
storing a text string lookup table in a computer memory, the text string lookup table including a multiplicity of text characters associated with a text string and encoding data defining a center position of each of the multiplicity of text characters associated with the text string; determining using a computer device a plurality of line segments associated with a line in the image along which the text string is to be rendered and a range associated with each line segment, wherein at least two of the plurality of line segments are at an angle with each other; forming a text box for each of the plurality of line segments using the computer device, each of the text boxes being oriented to draw text in an upright position along an associated line segment in the image, the text box having a horizontal component along the range of the line segment and a vertical component perpendicular to the range of the line segment; and for each text character in the text string; selecting one of the text boxes in which to render the text character of the text string using the computer device, wherein the one of the text boxes is associated with one of the at least two line segments that are at an angle with each other; reading the encoding data from the text string lookup table using the computer device and determining if the center position of the text character, when rendered in the selected one of the text boxes, will be within the range of the line segment associated with the selected one of the text boxes; and rendering the text character in the image on the display device using the selected one of the text boxes if the center position of the text character when rendered in the selected one of the text boxes will be within the range of the line segment associated with the selected one of the text boxes or otherwise selecting a different one of the plurality of text boxes as the selected one of the text boxes if the center position of the text character, when rendered in the selected one of the text boxes, will not be within the range of the line segment associated with the selected one of the text boxes. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A map image rendering system, comprising:
-
a database that stores map-related vector image data, the vector image data comprising data defining one or more image objects and one or more text string lookup tables, wherein one of the text string lookup tables stores text characters associated with at least one text string to be rendered as a set of pixelated text characters and encoding data defining the center position of each of a plurality of text characters associated with the text string; and a map image rendering device communicatively coupled to the database to use the map-related vector image data and to render a map image using the map-related vector image data, the map image rendering device including; a processor, a memory coupled to the processor, a display device coupled to the processor, one or more applications stored on the memory which, when executed on the processor; determine a plurality of line segments associated with a line along which a text string is to be rendered and a range associated with each line segment, wherein at least two of the plurality of line segments are at an angle with each other; form a text box for each of the plurality of line segments, each of the text boxes being oriented to draw text in an upright position along an associated line segment in the image and having a set of range values defined by the range of the associated line segment, the text box having a horizontal component along the range of the line segment and a vertical component perpendicular to the range of the line segment; and for each text character in the text string, (1) read the encoding data from the text string lookup table; (2) determine the text box having a range value in which the center position of the text character will fall when the text character is rendered on the image; and (3) render the text character as part of the image on the display device using the determined one of the text boxes. - View Dependent Claims (34, 35, 36, 37, 38, 39)
-
Specification