2015-11-05 15:45:38 -08:00
|
|
|
# cu2qu
|
2015-10-05 18:14:26 -07:00
|
|
|
|
|
|
|
This library provides functions which take in RoboFab objects (RFonts or their
|
|
|
|
children) and converts any cubic curves to quadratic. The most useful function
|
|
|
|
is probably `fonts_to_quadratic`:
|
|
|
|
|
|
|
|
```python
|
|
|
|
from robofab.world import OpenFont
|
2015-11-05 15:45:38 -08:00
|
|
|
from cu2qu import fonts_to_quadratic
|
2015-11-05 15:54:04 -08:00
|
|
|
thin_font = OpenFont('MyFont-Thin.ufo')
|
|
|
|
bold_font = OpenFont('MyFont-Bold.ufo')
|
|
|
|
fonts_to_quadratic(thin_font, bold_font)
|
2015-10-05 18:14:26 -07:00
|
|
|
```
|
|
|
|
|
2015-11-05 15:54:04 -08:00
|
|
|
Interpolation compatibility is guaranteed during conversion. If it's not
|
|
|
|
needed, converting one font at a time may yield more optimized results:
|
2015-10-05 18:14:26 -07:00
|
|
|
|
|
|
|
```python
|
2015-11-05 15:54:04 -08:00
|
|
|
for font in [thin_font, bold_font]:
|
|
|
|
fonts_to_quadratic(font)
|
2015-10-05 18:14:26 -07:00
|
|
|
```
|
|
|
|
|
2015-11-20 12:08:28 -08:00
|
|
|
Some fonts may need a different error threshold than the default (0.0025 em).
|
|
|
|
This can also be provided by the caller:
|
2015-10-05 18:14:26 -07:00
|
|
|
|
|
|
|
```python
|
2015-11-20 12:08:28 -08:00
|
|
|
fonts_to_quadratic(thin_font, bold_font, max_err=0.005)
|
2015-11-05 15:54:04 -08:00
|
|
|
```
|
|
|
|
|
|
|
|
```python
|
|
|
|
for font in [thin_font, bold_font]:
|
2015-11-20 12:08:28 -08:00
|
|
|
fonts_to_quadratic(font, max_err=0.001)
|
2015-10-05 18:14:26 -07:00
|
|
|
```
|
|
|
|
|
|
|
|
`fonts_to_quadratic` returns a string reporting the number of curves of each
|
2015-11-05 15:54:04 -08:00
|
|
|
length. For example `print fonts_to_quadratic(font)` may print something like:
|
2015-10-05 18:14:26 -07:00
|
|
|
|
|
|
|
```
|
|
|
|
3: 1000
|
|
|
|
4: 2000
|
|
|
|
5: 100
|
|
|
|
```
|
|
|
|
|
|
|
|
meaning that the font now contains 1000 curves with three points, 2000 with four
|
|
|
|
points, and 100 with five. Given multiple fonts, the function will report the
|
|
|
|
total counts across all fonts.
|
|
|
|
|
|
|
|
See the source for functions which operate on glyphs, segments, or just several
|
|
|
|
points. `FontCollection` classes are also exposed, which allow access into
|
|
|
|
multiple fonts simultaneously and may be generally useful.
|