Oto zrzut ekranu z tekstem wpisanym w edytorze tekstu:
To jest ten sam tekst w większym rozmiarze.
Zauważ, jak widoczne jest aliasing na literach z wyraźnymi ukośnymi pociągnięciami, takimi jak x
i z
. Ten problem jest głównym powodem, dla którego czcionki rastrowe straciły popularność w „skalowalnych” formatach, takich jak TrueType.
Ale może nie jest to nieodłączny problem z czcionkami rastrowymi, tylko ze względu na sposób, w jaki zwykle skaluje się je. Oto alternatywne renderowanie przy użyciu prostej interpolacji dwuliniowej w połączeniu z progowaniem .
Jest to płynniejsze, ale nie idealne. Ukośne kreski nadal wyboistych i zakrzywione litery jak c
i o
nadal są wielokąty. Jest to szczególnie widoczne w dużych rozmiarach.
Czy jest więc lepszy sposób?
Zadanie
Napisz program, który pobiera trzy argumenty wiersza polecenia.
resize INPUT_FILE OUTPUT_FILE SCALE_FACTOR
gdzie
- INPUT_FILE to nazwa pliku wejściowego, który zakłada się, że jest to plik obrazu zawierający czarny tekst na białym tle. Możesz użyć dowolnego głównego formatu obrazu rastrowego (PNG, BMP itp.), Który jest wygodny.
- OUTPUT_FILE to nazwa pliku wyjściowego. Może to być format rastrowy lub wektorowy. Możesz wprowadzić kolor, jeśli wykonujesz renderowanie subpikseli podobne do ClearType.
- SCALE_FACTOR to dodatnia wartość zmiennoprzecinkowa, która wskazuje, o ile można zmienić rozmiar obrazu. Biorąc pod uwagę plik wejściowy x × y px i współczynnik skalowania s , wyjście będzie miało rozmiar sx × sy px (w zaokrągleniu do liczb całkowitych).
Możesz użyć biblioteki przetwarzania obrazu open-source trzeciej pary.
Oprócz swojego kodu, dołącz przykładowe wyniki swojego programu w współczynnikach skali 1,333, 1,5, 2, 3 i 4, używając mojego pierwszego obrazu jako danych wejściowych. Możesz także wypróbować go z innymi czcionkami, w tym proporcjonalnie rozmieszczonymi.
Punktacja
To konkurs popularności. Wpis z największą liczbą głosów pozytywnych minus głosy negatywne wygrywa. W przypadku dokładnego remisu wygrywa wcześniejszy wpis.
Edytować : Termin przedłużony z powodu braku wpisów. TBA.
Wyborcy są zachęcani do oceniania w oparciu przede wszystkim o to, jak dobrze wyglądają obrazy wyjściowe, a po drugie o prostotę / elegancję algorytmu.
SCALE_FACTOR
zawsze> 1?