画像を新しい背景色に再アンチエイリアスする新しい背景色/パターンにアンチエイリアス画像を描画するためのプログラムによるアプローチはありますか? できれば.Netプログラムにアクセスできますか?
3 に答える
WPF を使用して新しいイメージを作成し、イメージ ファイルに保存できます。
画像が特定の背景色に対して既にアンチエイリアスされている場合、このアンチエイリアスを自動的に削除することはコード上では困難です。残念ながら、画像を手動で編集するのが最善の策です。
一般的なケースでは仕方がありません。ただし、要件を少し制限すれば、それは可能です。
アンチエイリアス処理された画像が既知の単色であり、背景を別のファイルとして持っていると仮定した場合、その方法を説明できます。
たとえば、アンチエイリアス処理された画像が、黒のフォントの単語で構成されているとします。そして背景は任意です。次に、別の背景用に画像を「再アンチエイリアス」するには、次の 2 つの手順が必要です。
背景から分離された元のアンチエイリアス画像を復元します。これを行うには、次のアルゴリズムを実行します。
for_every_pixel {
isolated_pixel_intensity = 1 - rgb_distance(mixed_pixel_rgb - background_pixel_rgb, foreground_solid_rgb)
}
// rgb_distance is implemented as Pythagora's Theorem in 3D.前景画像ができたので、それを新しい背景と単純にブレンドします。
自分でコードを書く必要があります。System.Drawing.Bitmap
.NETを使っているのでベースとして使えます。
編集:これは無視してください。背景画像に前景と同じ色の領域が含まれている場合など、解決できない場合があるため、実際には機能しません。