Этот простой код дает мне очень плохой результат.
Image global_src_img = Image.FromFile(Application.StartupPath + "\\src.png");
Image src_img = ((Bitmap)global_src_img).Clone(new Rectangle(160, 29, 8, 14), PixelFormat.Format32bppArgb);
src_img.Save(Application.StartupPath + "\\src_clonned.png", ImageFormat.Png);
Bitmap trg_bmp = new Bitmap(100, 100);
Graphics gfx = Graphics.FromImage(trg_bmp);
gfx.FillRectangle(new Pen(Color.FromArgb(255, 0, 0, 0)).Brush, 0, 0, trg_bmp.Width, trg_bmp.Height);
gfx.DrawImageUnscaled(src_img, (trg_bmp.Width / 2) - (src_img.Width / 2), (trg_bmp.Height / 2) - (src_img.Height / 2));
gfx.Dispose();
trg_bmp.Save(Application.StartupPath + "\\trg.png", ImageFormat.Png);
Он клонирует часть большого изображения буквами и записывает его в другое изображение.Письменное изображение имеет дополнительные пиксели на внешних границах, которые не представлены в исходном изображении так же, как в клонированном изображении.Как этого избежать?
Это клонированное изображение (src_clonned.png
), которое позже будет нарисовано на графике.
Сохраняется результирующее изображение (trg.png
).