我试图创建一个应用来编辑图像。我一直在努力保存我在图像上绘制的图形一段时间,现在我已经解决了这个问题,但我的下一个问题是线条现在看起来距离鼠标位置几个像素。
我有这个:
bool draw = false;
Graphics g;
int? preX = null;
int? preY = null;
private void btnOpen_Click(object sender, EventArgs e)
{
OpenFileDialog open = new OpenFileDialog();
open.Filter = "Image Files(*.jpg; *.jpeg; *.bmp; *.png;)|*.jpg; *.jpeg; *.bmp; *.png;";
if (open.ShowDialog() == DialogResult.OK)
{
pictureBox1.Image = new Bitmap(open.FileName);
}
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (draw)
{
Pen pen = new Pen(btnColor.ForeColor, float.Parse(numericUpDown1.Value.ToString()));
Graphics g = Graphics.FromImage(pictureBox1.Image);
g.DrawLine(pen, new Point(preX ?? e.X, preY ?? e.Y), new Point(e.X, e.Y));
preX = e.X;
preY = e.Y;
pictureBox1.Invalidate();
}
}
我希望这是有道理的,否则我会尽力让事情更清楚。我不太明白为什么会发生这种情况,但是当我开始在图片框上绘图时,线条不会出现在鼠标指针上,而是出现在右边几个像素处。请帮忙:(