У меня есть графическое окно, в котором изображение может быть увеличено с различными значениями. Затем я пытаюсь выяснить расположение курсора на картинке. Я пишу следующий код на событие перемещения мыши на картинке:
int x = (2 * e.X - pictureBox1.Width + pictureBox1.Image.Width) / (2 * _scale / 100);
int y = (2 * e.Y - pictureBox1.Height + pictureBox1.Image.Height) / 2 * _scale / 100);
здесь _scale - это увеличенное значение, которое может быть 10,50,100 или 200 и т. Д.
Мой вопрос:
дает правильное значение, если масштабирование превышает 100%. Но если масштаб меньше 100, это дает неверное значение. Как я могу дать правильное значение, если даже увеличенное изображение меньше 100%?
Еще несколько объяснений:
для увеличения я пишу следующий код.
pictureBox1.Image = new Bitmap(Orignal_image, (int)( Orignal_image .Width * scale / 100), (int)( Orignal_image.Height * scale / 100));
РЕДАКТИРОВАТЬ: Режим размера изображения boxbox является centerImage. и не обязательно, чтобы ширина окна изображения была равна изображению. его ширина может быть меньше, чем у изображения, и тогда изображение отобразится в центре Picturebox. Мне нужно только местоположение изображения. (то есть 0 пикселей задается начальной позицией изображения, а не картинки).