Странное поведение на определенных компьютерах при обрезке с помощью AForge

#c# #.net #winforms #image-processing #aforge

#c# #.net #winforms #обработка изображений #aforge

Вопрос:

Недавно я создал приложение для обработки изображений .NET с использованием AForge.СЕТЕВАЯ библиотека. Программа отлично работает на всех 10 компьютерах в моем офисе, где она установлена, за исключением двух. На этих двух компьютерах, когда пользователь пытается обрезать изображение, оно не обрезается в правильных координатах. Все смещено вниз и вправо. Компьютеры представляют собой сочетание компьютеров с Windows 7 и Windows 10. Два компьютера, демонстрирующие странное поведение, являются компьютерами с Windows 7, но он работает на других 5 компьютерах с Windows 7, на которых он установлен. Я проверил, что на каждом компьютере установлена последняя версия .NET Framework, и протестировал программу на этих компьютерах с изображениями, полученными из рабочих систем, чтобы убедиться, что это не проблема с форматом их изображений. Я в недоумении. Если кто-нибудь видел что-то подобное раньше или имеет опыт работы с проблемами совместимости с AForge, пожалуйста, дайте мне знать. Заранее спасибо!

Я не знаю, насколько мой исходный код поможет, но вот код для функции обрезки. Если требуется дополнительный код из других областей приложения, я могу их предоставить. Еще раз спасибо.

 private void GetImage(object sender, EventArgs e)
        {
            int astartatX = (int)initial.X;
            int astartatY = (int)initial.Y;
            int aXdist1 = (int)(Final.X - initial.X);
            int aYdist1 = (int)(Final.Y - initial.Y);
            Crop anewcropper = new Crop(new Rectangle(astartatX * 8 - 125, astartatY * 8 - 125, aXdist1 * 8   250, aYdist1 * 8   250));
            Bitmap bmpToCrop = (Bitmap)Editor.Image;
            Bitmap anewcroppedImage = anewcropper.Apply(bmpToCrop);
            string processedpath = Path.Combine(pictures, baseprocessedpath);
            string newbaseFilename = Path.Combine(processedpath, "comic.jpg");
            string anewFilename = newbaseFilename.Insert(newbaseFilename.Length - 4, number.ToString());
            bmpToCrop.Dispose();
            anewcroppedImage.Save(anewFilename);
            Editor.Image = anewcroppedImage;
            Editor.SizeMode = PictureBoxSizeMode.StretchImage;
        }
  

Комментарии:

1. Трудно сказать по приведенной информации. Установлены ли на 2 компьютерах разные DPI и / или масштабирование? Разные разрешения рабочего стола? Растягиваете ли вы исходное растровое изображение, чтобы заполнить экран перед обрезкой?

2. ::Facepalm:: Вы правы. Это было масштабирование… Кто-то изменил настройки отображения на этих двух компьютерах, не сообщив мне об этом. Извините за глупый вопрос.