Как вырезать прямоугольник из TIFF? - PullRequest
2 голосов
/ 09 марта 2010

У меня есть графический интерфейс Winforms в C #, который позволяет пользователю рисовать прямоугольник на дисплее tiff и сохранять положение, высоту, ширину и т. Д. По сути, я хочу взять сохраненную позицию, высоту и ширину прямоугольника и вырезать эту область в септ. растровое изображение, которое затем может быть передано в sep. метод, который будет просто OCR только новый клип из растрового изображения. Каков наилучший способ сделать это?

Ответы [ 2 ]

2 голосов
/ 09 марта 2010

Используйте Graphics.DrawImage (), чтобы скопировать выделенную часть исходного изображения. Вам понадобится перегрузка , которая принимает прямоугольник источника и назначения. Создайте экземпляр Graphics из Graphics.FromImage () на новом растровом изображении того же размера, что и прямоугольник.

    public static Bitmap CropImage(Image source, Rectangle crop) {
        var bmp = new Bitmap(crop.Width, crop.Height);
        using (var gr = Graphics.FromImage(bmp)) {
            gr.DrawImage(source, new Rectangle(0, 0, bmp.Width, bmp.Height), crop, GraphicsUnit.Pixel);
        }
        return bmp;
    }
0 голосов
/ 17 марта 2010

Используйте Bitmap.Clone () , чтобы создать копию обрезанной области.

public Bitmap ClipBitmap(Bitmap src, Rectangle crop)
{
  return src.Clone(crop, src.PixelFormat);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...