A method for displaying characters on a screen or printer, particularly kanji characters. The structure of the character is represented by stems and counters, both vertical and horizontal, the counters being the spaces between stems. The character is then adjusted to be displayed. Either the horizontal or vertical counters are grouped into a first chain of counters. The non-integral counter widths of this chain are adjusted in relation to the other counter widths within the chain, selected counter widths being made equal to others within the chain in order to most faithfuly reproduce the desired character. The remaining horizontal or vertical counters, if any, are also grouped into one or more series of chains which are also adjusted, chain by chain. Then the other set of counters are adjusted in the same way.
The present invention provides an apparatus and method for converting font outlines to rasterized bit maps. The method accesses stored outline data representing the object in a first coordinate space and transforms the outline data to corresponding data representing the object in a second coordinate space, maintaining regional relationship information in both coordinate spaces, through a non-linear transformation expressed as a plurality of linear transformation matrices, to generate a bit map suitable for displaying the object. The present invention includes an apparatus to analyze Bezier curves and subdivide them as necessary until each portion is sufficiently flat to be approximated as a straight line, and then to calculate where line segments cross pixel midlines in order to fill the outline and generate the bit map. From another perspective, the method takes an outline of an object in a first coordinate space, scales the outline to a second coordinate space, identifies the coordinates of one or more select points in the second coordinate space and compares those coordinates with desired coordinates in the second coordinate space, calculates the difference in device space for the desired versus the actual coordinate in the second coordinate space, derives a plurality of piecewise linear transformation matrices to approximate a non-linear transformation, applies an appropriate linear transformation matrix to map essentially any point on the outline in the first coordinate space to corresponding coordinates in the second coordinate space, and fills and stores the outline of the object in a form suitable for display on a raster device.
An apparatus for adjusting a line width of an outline font includes an original outline data storing device for storing attribute data in advance. The attribute data indicates whether a data point, which represents a contour line of a character of an outline font, is a point at which line width is to be adjusted. The attribute data is stored in correspondence with original coordinate-value data of the data point. Also provided is an original line-width data storing device for storing data representing original line width in correspondence with original outline data of each character; and a line-width converting device for converting original line-width data into fraction-processed output line-width data in conformity with a mesh size corresponding to a designated character size. A coordinate-value converting device, which is operative when original coordinate-value data read out of the original outline data storing device is accompanied by attribute data indicating that line width is to be adjusted, converts the original coordinate-value data into fraction-processed output coordinate-value data using the fraction-processed output line-width data such that a line width stipulated by the fraction-processed output coordinate-value data becomes equal to a line width represented by the fraction-processed output line-width data.
An apparatus and method of modifying graphic character images to preserve aesthetic aspects of such images involves manipulation of fractional pixel errors resulting from the transformation of a character image from conformance with a matrix of a first resolution to conformance with a matrix of a second resolution or output device-specific matrix. Fractional pixel errors are saved and processed for integrating into a character image while controlling the transformation and outline drawing of the character image with respect to the output device-specific matrix.
A pattern processing system which comprises a main memory (3) and an outline data extractor (4) and a stroke setter (5). The outline data extractor (4) extracts a plurality of pairs of opposing segments on an outline of a pattern, obtain a position of a segment in one side of the segments in each pair, and also obtains a width between the segments in each pair on the basis of outline font data stored in the main memory (3). The stroke setter (5), when the obtained widths between the segments in the pairs are equal to each other, calculates an average distance between the segments on the basis of the positions of segments in one side in the pairs, selects one of the positions of the segments in one side and using a selected position as a reference position, corrects the remaining positions of the segments in one side other than the selected position on the basis of the average distance and the reference position and obtaining respective correction positions therefor, and adds the width to the reference position of the segments in one side and the correction positions to thereby obtain correction positions of the segments in another side in the pairs of segments.
A method of hinting a font to provide improved stem width and intercharacter spacing control in automatic typography systems. The method is adapted to make the transition smoothly and gradually from the smallest font sizes to the largest font sizes. The stem widths and sidebearings of the font are measured and then clustered within a predetermined cluster tolerance parameter. Next, the clustered measurements are partitioned into a plurality of contiguous blocks and then hinted to one of a plurality of integer number of pixels. The number of blocks in the partition will vary depending on the given scaling factor, which is a function of the font size and the resolution of the output device on which the font is to be rendered.