Gibt es eine Möglichkeit, Antialiasing eine 2-Ton-Bitmap (in. NET), ohne ein Bild zu schrumpfen. Zum Beispiel habe ich ein Schwarz-Weiß-Bild und die schwarzen Objekte haben gezackte Kanten. Ich möchte die Kanten der "nicht weißen" Objekte glätten, ohne die gesamte Bitmap zu verkleinern.Antialiasing 2-Ton-Bitmap in .net ohne Schrumpf
Hier ist, wie ich zur Zeit meine Operationen an Durchführung:
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)
Ich frage mich, ob es irgendeine Algorithmus oder Bibliothek ich die oben ausführen verwenden könnte, aber ohne über das Bild zu schrumpfen. Der Grund, warum ich vermeiden möchte, das Bild zu schrumpfen, ist, weil ich die volle Bitmap nicht speichern kann, kann ich nur speichern, was auf dem Bildschirm angezeigt wird, und das verursacht einige Probleme für mich.