2
画像を縮小せずに2トーンビットマップ(.NET)をアンチエイリアスする方法はありますか?たとえば、白黒画像があり、黒いオブジェクトにはエッジがギザギザしています。私はビットマップ全体を縮小せずに "非白"のオブジェクトのエッジを滑らかにしたいと思います。ここで縮んでいない.netの2トーンビットマップのアンチエイラル
は、私は現在、私の業務を行っております方法です:
Dim from_bm = New Bitmap(frm.ClientSize.Width, frm.ClientSize.Height)
Dim bm_gr As Graphics = Graphics.FromImage(from_bm)
Dim bm_hdc As IntPtr = bm_gr.GetHdc
BitBlt(bm_hdc, 0, 0, frm.ClientSize.Width, frm.ClientSize.Height, hdc, 0, 0, SRCCOPY)
bm_gr.ReleaseHdc(bm_hdc)
Dim w As Integer = (from_bm.Width/4) ' This is the operation I wish to avoid
Dim h As Integer = (from_bm.Height/4)
to_bm = New Bitmap(w, h)
Dim gr As Graphics = Graphics.FromImage(to_bm)
gr.InterpolationMode = Drawing2D.InterpolationMode.HighQualityBicubic
gr.DrawImage(from_bm, 0, 0, (w - 1), (h - 1))
gr.DrawImageUnscaled(to_bm, 0, 0)
私は上記を実行するために使用することができ、いくつかのアルゴリズムまたはライブラリがある場合は疑問に思ったが、上の画像を縮小せずにいます。画像を縮小したくない理由は、ビットマップ全体をメモリに保存することができず、画面に表示されているものだけを保存することができ、これが私にとっていくつかの問題を引き起こしているからです。