アンチエイリアス

Delphiで作ってるソフトでスキンの表示に時計を描画しているんだけど、どうにも汚い。
大抵のアナログ時計ソフトって綺麗にアンチエイリアスしてますよね・・・。
ゼロから描画処理を見直す気力ないので、最低限の処理でアンチエイリアス化できないかと考えてみた。
結論としては、最初に縦横2倍のサイズのバッファをつくっておいて、内部で全て2倍のサイズで描画処理を終了させる(時計の針も文字も)。スキンは事前に単純拡大で貼り付けておく。
描画が終了したら、4ピクセルを1ピクセルに平均処理かけながら、本来のサイズの領域へ(同じバッファ上でもOK)縮小処理していく。
できあがったらフォーム上へbitblt転送。
 
脳内コーディングでは特に問題になりそうな部分はないな・・・よしよし。
 
アンチエイリアス化(4pix→1pix)は部員弐号さんのABitmapのアンチエイリアス文字の処理を参考にする。時間はかかりそうだけど、320x80(640x160)が200ms未満で処理できればOK。
扱う画像が32bitに統一にしてあって単純なbyte配列の演算で済むから、そこそこ高速化できそう。
土日に検証してみることとする。

Windows Vista の実力

海外のネタですが、WindowsVistaの音声入力を使用して perl のプログラムコードを書こうとする動画です。
日本人でも、音声入力システムが吐く英文が妙なことは分かるでしょう・・・。
英語分かる人は吹き出す可能性があるので、飲み物禁止です。
 

 
打ち間違いを消そうとして変な英文を大量生産したり、鼻をすする音がifになったりと、なかなか面白い動きを見せます。
間違った部分を消すためには、そこを読み上げなくてはならないのですが、他人(Windows)が間違った文章を読み上げるのはなかなか苦痛ですね。
 
とはいえ、カーソル位置の移動とか、入力候補表示とか、そういう部分の仕組みや認識精度はなかなかなものですね(私が昔のViaVoiceしか知らないので、最近ではこの程度は常識なのかもしれませんが)。
 
自然文入力ならともかく、プログラムコード類の入力は厳しいなぁ・・・。