This is obviously an old question, but I'm really proud of our font matching mechanism, so please let me add some relative information.
This is not a public library or SDK (at least for now) but it is an engine built into the product:
http://www.findmyfont.com
It reads the image (or captures the screen) and matches the characters you have selected with all the fonts on your computer β either installed or not.
The corresponding speed is up to 5 million fonts per minute, which means that it can correspond, for example. 5-6 letter image versus 100,000 fonts in 1-2 seconds.
The accuracy of the match mainly depends on the image quality and resolution (a minimum height of 20 pixels is recommended), and also depends on how unique the shape of the selected letters is. In general: if you really have a font on your computer and select 2-3 letters of any image, you will find the actual font in the top 5 matches - usually the top match - and this is true for as many as 600,000 font files.
Now we are in beta testing the new version, which allows the application to match also fonts that you do not have on your computer by sending a compliance request to the online server.
I canβt talk much about our own matching algorithm, but I can say the following:
a. You do not need to interfere with the actual shape of the vector font: a good enough bitmap image of the letter is enough to successfully extract the function.
b. If you want to achieve high performance matching, you need to create and save the appropriate index by scanning once all the letters of all fonts.
I hope itβs clear that I donβt post all this information to advertise the product, but to say that I am really proud as a developer to develop and implement this font matching mechanism.
Greetings
Fivos
PS: environment / implementation language: Qt / C ++ for Windows / Mac OS / CentOS.