Оригинальный вопрос: Original questionRescale прямоугольник (Top, Left, снизу, справа)
У меня есть изображение I1 размера height x width = (1500,500)
уменьшенного до (500,300)
.
I1 содержит ограничивающие коробки, характеризующиеся их координатами (Top, Left, Bottom, Right)
.
Как переранжировать координаты ограничительные рамки, когда размер I1 изменяется? Правильно ли эти формулы?
double newTop = Math.Ceiling((top) * (double)pictureBox1.Height/(double)image1.Height);
double newLeft = Math.Ceiling((left) * (double)pictureBox1.Width/(double)image1.Width);
double newBottom = Math.Ceiling((bottom + 1) * (double)pictureBox1.Height/(double)image1.Height) - 1;
double newRight = Math.Ceiling((right + 1) * (double)pictureBox1.Width/(double)image1.Width) - 1;
Как бы то ни было, с кратким взглядом, не пытаясь его попробовать. – Codor
Вы уверены, что должны делать целые деления? Мне кажется, что вы столкнетесь с серьезными ошибками, если я полностью не пойму ваш код. – InBetween
@ Внутри вы правы. Возможно, из-за целых чисел я не могу правильно масштабировать рамку. Я попробую сейчас. Шоуд Я беру верхнюю или нижнюю границу? для деления –