Есть ли способ сглаживания двухтонального растрового изображения (в .NET) без сжатия изображения. Например, у меня есть черно-белое изображение, а черные объекты имеют зубчатые края. Я хотел бы сгладить края на «небелых» объектах, не сокращая все растровое изображение.Сглаживание 2-тонных растровых изображений в .net без сокращения
Вот как я в настоящее время выполняет свои операции:
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)
Я интересно, если есть какой-то алгоритм или библиотека я мог бы использовать для выполнения выше, но без сжатия изображения выше. Причина, по которой я хочу избежать сжатия изображения, заключается в том, что я не могу сохранить полное растровое изображение в памяти, я могу сохранить только то, что отображается на экране, и это вызывает некоторые проблемы для меня.