Как я могу уменьшить изображение в графическом окне, не влияя на координацию? - PullRequest
0 голосов
/ 12 ноября 2018

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

Я нашел решение, способное уменьшить картинку, но координата также изменилась. Например, я рисую область прямоугольника в «Маларвили», но координата прямоугольника отличается от того, что я нарисовал. Из-за этого извлеченный текст неверен.
Example 1

Итак, я хочу знать какое-либо решение, чтобы изображение уменьшалось в окне рисунка, не затрагивая исходную координату прямоугольника? Или используя мое оригинальное решение, которое использует «автоматический размер» без изменения размера изображения, но я также столкнулся с проблемой, которая заключается в том, что когда я рисую прямоугольник вправо, полоса прокрутки не будет автоматически прокручиваться, и это заставляет меня не рисовать прямоугольник в конец права.
My current solution but the scrollbar will not auto scroll to right when the mouse is moving to right

Есть ли решение для решения этих проблем? Большое спасибо.

1 Ответ

0 голосов
/ 14 ноября 2018

Вы можете вычислить отношения (ось x и y) между изображением с измененным размером (pictureBox в режиме StretchImage) и исходным изображением, а затем вычислить обратно прямоугольник для исходного изображения из прямоугольника, нарисованного в pictureBox используя эти отношения.

pictureBox.SizeMode = PictureBoxSizeMode.StretchImage;
ratio_X = (double) pictureBox.Width/original_image;
ratio_Y = (double) pictureBox.Height/original_image;

//suppose you have the rect drawed in the pictureBox: pictureBox_rect
//now make a rect for original_image
Rectangle original_rect = new Rect((int)pictureBox_rect.X * ratio_X, 
                                   (int)pictureBox_rect.Y * ratio_Y, 
                                   (int)pictureBox_rect.Width * ratio_X, 
                                   (int)pictureBox_rect.Height * ratio_Y)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...