#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:: Вы правы. Это было масштабирование… Кто-то изменил настройки отображения на этих двух компьютерах, не сообщив мне об этом. Извините за глупый вопрос.