これは、テキストエディターで入力したテキストのスクリーンショットです。
これは、より大きなサイズの同じテキストです。
およびのような顕著な対角線のある文字で、エイリアシングがどれほど見えるかに注目してください。この問題は、ラスターフォントがTrueTypeのような「スケーラブル」フォーマットへの人気を失った主な理由です。x
z
しかし、これはラスターフォントに固有の問題ではなく、それらのスケーリングが通常実装される方法だけである可能性があります。以下に、しきい値処理と組み合わせた単純な双線形補間を使用した代替レンダリングを示します。
これはよりスムーズですが、理想的ではありません。斜めのストロークはまだでこぼこであり、湾曲した文字は好きc
でo
、まだポリゴンです。これは特に大きなサイズで顕著です。
それでは、もっと良い方法はありますか?
タスク
3つのコマンドライン引数を取るプログラムを作成します。
resize INPUT_FILE OUTPUT_FILE SCALE_FACTOR
どこ
- INPUT_FILEは入力ファイルの名前です。これは、白い背景に黒いテキストを含む画像ファイルであると想定されています。便利なメインストリームラスターイメージ形式(PNG、BMPなど)を使用できます。
- OUTPUT_FILEは、出力ファイルの名前です。ラスター形式またはベクター画像形式のいずれかです。ClearTypeのようなサブピクセルレンダリングを実行している場合、色を導入できます。
- SCALE_FACTORは、画像のサイズを変更できる正の浮動小数点値です。所与のX × Yピクセルの入力ファイルとを因子スケールSは、出力の大きさを有することになるSX × SY PX(整数に丸められます)。
サードパーティのオープンソース画像処理ライブラリを使用できます。
コードに加えて、最初の画像を入力として使用して、スケールファクター1.333、1.5、2、3、および4でプログラムのサンプル出力を含めます。比例間隔のフォントなど、他のフォントで試すこともできます。
得点
これは人気コンテストです。投票数から投票数を引いたものが最も多いエントリが勝ちです。正確に同点の場合、以前のエントリが優先されます。
編集:エントリの不足により期限が延長されました。未定。
投票者は、主に出力画像の見栄えに基づいて判断し、次にアルゴリズムのシンプルさ/優雅さに基づいて判断することをお勧めします。
SCALE_FACTOR
常に> 1?