2016-05-14 1 views
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) 

私は上記を実行するために使用することができ、いくつかのアルゴリズムまたはライブラリがある場合は疑問に思ったが、上の画像を縮小せずにいます。画像を縮小したくない理由は、ビットマップ全体をメモリに保存することができず、画面に表示されているものだけを保存することができ、これが私にとっていくつかの問題を引き起こしているからです。

答えて

0

私はあなたが何を意味するのか理解したことを確認していないが、私はあなたが使用して、グラフィックの補間モードを設定することができると思います。

graphic.InterpolationMode = InterpolationMode.NearestNeighbor 
関連する問題