Could you try the LPE and see how it compares to your script?
Thanks! Johan
I might not have much time during the next days, here's just a first impression.
I can already say that the interpolation approach is more flexible, because it can deal with extreme curves where the handles point to opposing edges. With my axes tweening approach, the mapping inside the bounds follows the sides, which means the image gets reversed at some point in the middle (much like a fluttering flag). In the example image, the word "quick" is rendered inverse.
The LPE is also more precise because it breaks each curve down into tiny segments. Of course, that could be done with the axes approach too, but it would probably be too much for a script.
Another interesting difference is that my script takes the length of the handles into account, because it uses the bezier percentage. That's why the letter "x" is squashed.
Also, there seems to be a bug in my script, because the edge of the letter "q" leaks outside the bounds. Making the handles less extreme didn't solve that. I also tried the Java/Batik version, but the result is pretty much identical to the Python script.
I'll do some testing once I get the time.