Lossless conversion between quadratic and cubic Bézier curves

Can you losslessly convert from cubic to quadratic Bézier curves? I read this old TypeKit blog post stating the following:

TT outlines are made of quadratic curves and PS outlines are made of cubic curves, so it’s mathematically possible to convert TT to PS without any data loss. However, most type designers prefer to draw PS curves, so most of the conversion we do is PS to TT. This is a lossy process and increases file size;

It seems to state that it should be possible, but I have had mixed results when either exporting quadratic curves directly to .otf or choosing Path > Other > Convert to Cubic.

The quote states “TT to PS without any data loss” in other words “quadratic to cubic without any data loss”.
You can go from lower order curves (TT, quadratic) to higher order (PS, cubic) without loss but not the other way around i believe.

Not sure why you have problems with the said conversion though. Maybe some rounding goes into play?

1 Like

Quadratic curves normally need more segments to describe the same shape that can be described by one cubic segment. So converting cubic to quadratic adds more points. Converting back to cubic can be done simply by converting each quadratic segment into into cubic. Normally the converter likes to try to reconstruct the original cubic segment. That can lead to small error.
And both direction will introduce rounding errors.

2 Likes

I seem to have been mistaken. The convert to cubic option works flawlessly, but the direct export still causes issues. Have a look at this screenshot.

The Export to OTF doesn’t do the path optimisation I was explaining above as it might change the outlines.

1 Like

Oh, my apologies. Thanks for the explanation.