Znaczniki opisują arkusz
W każdym rogu znajduje się znacznik ArUco. Jego identyfikator zapisuje położenie rogu, rodzaj arkusza (litery, ligatury lub pusty), wersję szablonu oraz zestaw językowy. Program sprawdza cztery identyfikatory razem, dlatego potrafi rozpoznać także obróconą stronę.
Zewnętrzne narożniki wyznaczają cztery punkty odniesienia. Gdy znacznik jest zasłonięty lub niekompletny, położenia siatki nie da się pewnie odtworzyć. Zdjęcie musi więc pokazywać pełny arkusz.
Perspektywa zostaje wyrównana
Na podstawie czterech punktów inktype.cc oblicza homografię. To przekształcenie przenosi stronę sfotografowaną pod kątem na ustaloną geometrię A4. Pola siatki wracają dzięki temu do znanych miejsc.
Homografia koryguje perspektywę jednej płaskiej powierzchni. Mocno pofalowany papier, głębokie zagięcia i wygięta kartka książki nie leżą na jednej płaszczyźnie, więc mogą zniekształcić litery.
Pola siatki są wycinane osobno
Szablon ma 11 kolumn i 10 wierszy. Odczytany zestaw znaków określa, która litera należy do każdego pola. Program wycina pola z wyrównanej strony i przetwarza je niezależnie.
Próg adaptacyjny oddziela ciemny tusz od jasnego papieru. Suwaki Czułość i Próg przesuwają tę granicę dla całego fontu albo dla jednego glifu. Wyższa wartość zachowuje blade kreski, ale łatwiej zbiera także strukturę papieru oraz cienie.
Piksele zmieniają się w ścieżki
ImageTracer prowadzi kontury wzdłuż wykrytego tuszu i buduje zamknięte ścieżki. Wektory można skalować bez widocznych pikseli, dlatego stanowią kształt każdego znaku w gotowym kroju.
Po drodze program trzy razy czyści tusz. Przed wektoryzacją najpierw kasuje drobne plamki oderwane od litery, do rozmiaru ustawionego suwakiem Usuwanie plamek, ale nigdy największego śladu w glifie. Potem wypełnia małe dziurki otoczone tuszem, do rozmiaru ustawionego suwakiem Wypełnianie dziur. Drobne przebicia znikają, a środek liter takich jak o i e zostaje otwarty. W trakcie wektoryzacji Wygładzenie zaokrągla schodki i drgania na krawędziach pikseli, zanim program dopasuje do nich krzywe.
Suwaki w sekcji Tusz (Czułość, Próg, Wygładzenie, Wypełnianie dziur i Usuwanie plamek) zmieniają sam kontur. Pozycja i skala zmieniają położenie ścieżek, a szerokość określa ilość poziomego miejsca przy składaniu tekstu. Ustawienia globalne działają na całą rodzinę, a lokalne poprawiają pojedyncze wyjątki.
Na koniec kerning poprawia pary liter. Program mierzy, jak daleko od siebie leży tusz w każdej parze, pasmo po paśmie od góry do dołu. Pary takie jak AV czy To przysuwa bliżej, żeby wyglądały na równie rozstawione jak pary prostych liter, np. HH. Suwak Siła ustala, jak mocno to robi, a kerning uwzględnia każdą inną zmianę.
Przeglądarka buduje plik fontu
opentype.js łączy ścieżki, przypisania znaków, metryki i kerning w krój OpenType. Dodaje też reguły, które podmieniają litery na ligatury i kolejne wersje liter. Ten sam wynik zasila podgląd na żywo, dzięki czemu przed pobraniem możesz ocenić słowa oraz odstępy. Przy eksporcie przeglądarka zapisuje krój w wybranym formacie (OTF, TTF, WOFF lub WOFF2).
Cięższa analiza obrazu działa w Web Workerze, więc interfejs nie powinien się blokować. Ustawienia są przechowywane lokalnie i wyszukiwane według nazwy oraz rozmiaru pliku. Szczegóły opisuje polityka prywatności.