Я создал приложение WPF, в котором мне нужно разрешить пользователю рисовать прямоугольник на существующем загруженном изображении (tif-изображение) и сохранять его координаты / часть прямоугольника как отдельное изображение.
Я использую ссылку Leadtools.Windows.Controls и использую RasterImageViewer
Ниже приведен код для обработчика событий, когда пользователь завершил рисование прямоугольника.
private void ImageViewer_InteractiveUserRectangle(object sender, RectangleInteractiveEventArgs e)
{
if (e.Status == InteractiveModeStatus.End)
{
var img = ImageViewer.Image;
var top =Convert.ToInt32(e.Bounds.Top);
var left = Convert.ToInt32(e.Bounds.Left);
var width = Convert.ToInt32(e.Bounds.Width);
var height = Convert.ToInt32(e.Bounds.Height);
var rect = new Leadtools.LeadRect(left, top, width, height);
var cmd = new Leadtools.ImageProcessing.CropCommand(rect);
cmd.Run(img);
_codecs.Save(img, @"c:\temp\test.tif",
RasterImageFormat.CcittGroup4, 1, 1, 1, -1, CodecsSavePageMode.Append);
}
}
Я получаю отдельное обрезанное изображение, но оно не соответствует области, нарисованной прямоугольником. Я попробовал различные методы из примеров, но все они были для приложений Windows Forms, а не WPF. Буду признателен за любую помощь в том, что мне не хватает.