Это скриншот текста, набранного в текстовом редакторе:
Это тот же текст в большем размере.
Обратите внимание на то, насколько заметен псевдоним на буквенных диагональных штрихах, таких как x
и z
. Эта проблема является основной причиной, по которой растровые шрифты потеряли популярность для таких «масштабируемых» форматов, как TrueType.
Но, возможно, это не проблема, связанная с растровыми шрифтами, просто с тем, как обычно осуществляется их масштабирование. Вот альтернативный рендеринг с использованием простой билинейной интерполяции в сочетании с пороговым определением .
Это гладко, но не идеально. Диагональные штрихи по - прежнему неровные, и изогнутые буквы , как c
и o
до сих пор многоугольники. Это особенно заметно при больших размерах.
Так есть ли лучший способ?
Задание
Напишите программу, которая принимает три аргумента командной строки.
resize INPUT_FILE OUTPUT_FILE SCALE_FACTOR
где
- INPUT_FILE - это имя входного файла, который считается файлом изображения, содержащим черный текст на белом фоне. Вы можете использовать любой основной формат растровых изображений (PNG, BMP и т. Д.), Который вам удобен.
- OUTPUT_FILE - имя выходного файла. Это может быть формат растрового или векторного изображения. Вы можете ввести цвет, если выполняете субпиксельный рендеринг в стиле ClearType.
- SCALE_FACTOR - это положительное значение с плавающей точкой, которое указывает, насколько может быть изменено изображение. При заданном входном файле x × y px и коэффициенте масштабирования s выходные данные будут иметь размер sx × sy px (с округлением до целых чисел).
Вы можете использовать стороннюю библиотеку обработки изображений с открытым исходным кодом.
В дополнение к вашему коду включите примеры выходных данных вашей программы в масштабах 1.333, 1.5, 2, 3 и 4, используя мое первое изображение в качестве входных данных. Вы также можете попробовать его с другими шрифтами, в том числе пропорционально разнесенными.
счет
Это конкурс популярности. Запись с наибольшим количеством голосов минус побед победит. В случае точной ничьей побеждает более ранняя заявка.
Изменить : Срок продлен из-за отсутствия записей. TBA.
Избирателям рекомендуется судить, основываясь главным образом на том, насколько хорошо выглядят выходные изображения, а во-вторых, на простоте / элегантности алгоритма.
SCALE_FACTOR
Всегда ли > 1?