在我的 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);
}
Run Code Online (Sandbox Code Playgroud)
1024 / 800和768 / 600都是整数除法产生1
更改操作顺序:
MessageBox.Show("X=" + (1024 * me.X / 800) + ", Y=" + (768 * me.Y / 600));
Run Code Online (Sandbox Code Playgroud)
这是完整的方法(假设PictureBox1.SizeMode设置为StretchImage)。使用真实的宽度和高度值,而不是“魔法”常量 1024x768 或 800x600
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));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4944 次 |
| 最近记录: |