pierwsze rozwiązanie:
można użyć java.awt.Font, to klasa Java używany do zarządzania i tworzenia Czcionki, można użyć jej Font(String name, int style, int size) konstruktor, aby stworzyć swój własny Font:
Font (String name, int, int size styl):
tworzy nową czcionkę z określoną nazwą, styl i wielkość w punktach. Nazwa czcionki może być nazwą czcionki lub nazwą rodziny czcionek. Jest to używane razem ze stylem, aby znaleźć odpowiednią czcionkę. Gdy podana jest nazwa rodziny czcionek , argument stylu jest używany do wybierania najbardziej odpowiedniej twarzy z rodziny. Gdy określona nazwa czcionki jest określona jako , styl twarzy i argument stylu są scalane do , aby znaleźć najlepiej pasującą czcionkę z tej samej rodziny.
Na przykład jeśli nazwa twarz „Arial Bold” jest określony w stylu Font.ITALIC system czcionka wygląda na twarzy w „Arial” rodziny który jest pogrubienie i kursywa, a może powiązać wystąpienie czcionki z Fizyczna czcionka "Arial Bold Italic". Argument stylu jest scalony z określonym stylem ściany, nie jest dodawany ani odejmowany. Oznacza to, że określając pogrubioną czcionkę i pogrubioną czcionkę, nie podwaja podwójnie czcionki , a określenie pogrubionej twarzy i zwykłego stylu nie rozjaśnia czcionki.
Parametry:
nazwa - nazwa czcionki. Może to być nazwa czcionki lub nazwa rodziny czcionek i może reprezentować czcionkę logiczną lub fizyczną czcionkę znalezioną w tym środowisku graficznym. Nazwy rodzin dla czcionek logicznych: Dialog, DialogInput, Monospaced, Serif lub SansSerif. Wstępnie zdefiniowane stałe ciągów istnieją dla wszystkich tych nazw, na przykład: DIALOG. Jeśli nazwa ma wartość null, nazwa logicznej czcionki nowej czcionki zwróconej przez funkcję getName() jest ustawiona na nazwę "Default".
styl - styl stała dla czcionek styl argument jest całkowitą bitową, która może mieć zwykły, albo związek bitowe pogrubienia i/lub kursywą (na przykład, pochylony lub pogrubionych | kursywa). Jeśli argument stylu nie jest zgodny z jedną z oczekiwanych całkowitych masek bitowych, wówczas styl ustawiany jest na na ZWYKŁY.
rozmiar - wielkość punktem Fon
I jak widać to pozwala tworzyć nowe czcionki w zależności od istniejących czcionek, można również zmienić styl i rozmiar.
To jest a Tutorial, którą można śledzić.
drugie rozwiązanie:
Jak podano w komentarzach, można również skorzystać z biblioteki Fontastic, który wydaje się być doskonałym narzędziem do tworzenia nowych czcionek, to pozwala na wykonywanie czcionek na podstawie danych, czujników, transmisji na żywo lub dowolnego innego algorytmu lub manipuluj istniejącymi czcionkami, aby utworzyć własną wersję.
Oto podstawowe kroki potrzebne do pokazania, jak to działa. Aby uzyskać pełne informacje, patrz Documentation.
Jak utworzyć nowy Fontastic obiektu:
Fontastic f = new Fontastic(this, "ExampleFont"); // Create a new Fontastic object
Jak ustawić dalsze właściwości czcionki:
f.setAuthor("Andreas Koller");
Jak stworzyć glif dla charakterem z losowym kształcie czterech punktach:
PVector[] points = new PVector[4]; // Define a PVector array containing the points of the shape
points[0] = new PVector(0, 0); // Start at bottom left
points[1] = new PVector(random(512), 0); // The normal width is 512, the normal height 1024
points[2] = new PVector(random(512), random(1024)); // y coordinates are from bottom to top!
points[3] = new PVector(0, random(1024));
f.addGlyph('A').addContour(points);
Jak wygenerować plik czcionki TrueType:
f.buildFont();
Jak oczyścić potem:
f.cleanup();
Widać their examples.
Wniosek:
Ale w obu przypadkach nie będzie w stanie stworzyć czcionki z odręcznych skanowanych obrazów, Fantastic
nie pozwolą Ci stworzyć czcionkę z obrazami ale używa grafiki wektorowej do tworzenia czcionek, więc w tym przypadku rozwiązaniem byłoby:
aby użyć innego narzędzia do konwersji obrazów do wektorów (Vector Magic, Inkscape, myScriptFont.com)
następnie utwórz Font
pomocą wygenerowanego vectors
.
Możesz rzucić okiem na [Fontastic] (http://code.andreaskoller.com/libraries/fontastic/), biblioteki Java do tworzenia plików czcionek (w tym czcionki TrueType w plikach .ttf) . Fontastic korzysta z biblioteki [doubletype] (http://sourceforge.net/projects/doubletype/) do tworzenia czcionek typu truetype. Nie jestem szczególnie zaznajomiony z tymi bibliotekami ... –
Czy potrafi wykryć moje własne pismo z kartki papieru, w której napisałem wszystkie postacie w formacie tabelarycznym? –
Celem tej biblioteki jest utworzenie czcionki od zera (poprzez zdefiniowanie dowolnej grafiki wektorowej) lub zmodyfikowanie innej czcionki (która jest już w formacie wektorowym). Nie zamieni obrazu bitmapowego (takiego jak zeskanowany arkusz papieru) na czcionki wektorowe. Wiem, że niektóre edytory grafiki wektorowej (takie jak Inkscape) oferują narzędzia do konwersji bitmap do wektorów, a niektóre strony internetowe (takie jak darmowa [myscriptfont] (http://www.myscriptfont.com/)) umożliwiają konwertowanie pisma ręcznego na czcionki TrueType. , więc na pewno jest to wykonalne - ale nie znam żadnego takiego narzędzia dostępnego jako biblioteka Java. –