这就是我想要做的。我有一个1920X1080的图像。我在PictureBox中显示该图像,并允许用户在屏幕上绘制椭圆。一旦完成,我将需要将该图像与图像一起保存,并在一张照片中将其椭圆化。
所以我尝试了几种方法: 1.只是尝试从PictureBox中保存图像和椭圆。这样做没有成功。 2.将椭圆的位置存储在图片框上,然后使用图形对象在该图像的新副本上重绘该椭圆。这个问题是,由于PictureBox的大小和原始图像的差异,当保存椭圆时,它不在正确的位置。
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
pictureBox1.Cursor = Cursors.Default;
if (isMoving)
{
Circles.Add(mouseDownPosition, mouseMovePosition);
}
isMoving = false;
}
Bitmap newImage = new Bitmap(new Bitmap(@"C:\Personal\test\Sample.jpg"));
Graphics g = Graphics.FromImage(newImage);
foreach (var circle in Circles)
{
g.DrawEllipse(new Pen(Color.Red, 3), new Rectangle(circle.Key, new Size(circle.Value.X - circle.Key.X, circle.Value.Y - circle.Key.Y)));
}
newImage.Save(@"C:\Projects\Projects\SampleCombine.jpg");
我真的只是在寻找一种方法,以完全按照我在PictureBox上看到的内容并将其另存为自己的jpg。
我的观点是,我需要根据绘制的位置以及应在更大的文件上绘制的位置,弄清楚如何重新定位“圆形”。
有什么想法吗?