Вопрос:
В моей форме 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)); }