Получить реальные координаты изображения из местоположения мыши в PictureBox

Вопрос: В моей форме Windows у меня есть PictureBox, изображение которого загружается из каталога. Мне нужно отобразить реальный размер изображения в PictureBox, например изображение (ширина = 1024, высота = 768) и изображение (ширина = 800, высота = 600). Я хочу загрузить изображение в PictureBox с одинаковыми значениями пикселей. Так что, когда я указываю в любом

Вопрос:

В моей форме Windows у меня есть PictureBox, изображение которого загружается из каталога.

Мне нужно отобразить реальный размер изображения в PictureBox, например изображение (ширина = 1024, высота = 768) и изображение (ширина = 800, высота = 600).

Я хочу загрузить изображение в PictureBox с одинаковыми значениями пикселей. Так что, когда я указываю в любом месте PictureBox, я получаю значение пикселя, равное значению пикселя, которое я получаю, если я укажу на реальное изображение (пример получим измерение с помощью Photoshop).

Пробовал до сих пор, но не успел:

private void PictureBox1_MouseDown(object sender, MouseEventArgs e) { MouseEventArgs me = (MouseEventArgs)e; Bitmap b = new Bitmap(PictureBox1.Image); MessageBox.Show(«X=» + (1024/ 800) * me.X + «, Y=» + (768/ 600) *me.Y); } Лучший ответ:

1024/800 и 768/600 являются целыми делениями, которые производят 1

изменить порядок операций:

MessageBox.Show(«X=» + (1024 * me.X / 800) + «, Y=» + (768 * me.Y / 600));

Вот полный метод (если для PictureBox1.SizeMode установлено значение StretchImage). Используйте реальные значения ширины и высоты, а не “магические” константы 1024×768 или 800×600

private void PictureBox1_MouseDown(object sender, MouseEventArgs me) { Image b = PictureBox1.Image; int x = b.Width * me.X / PictureBox1.Width; int y = b.Height * me.Y / PictureBox1.Height; MessageBox.Show(String.Format(«X={0}, Y={1}», x, y)); }

Оцените статью
Добавить комментарий