在.NET中,我如何在图片上绘制形状?

时间:2010-06-16 19:10:03

标签: c# .net winforms image

我正在做一个软件,我需要在卫星地图(.png图像)上添加squary bordering字段,以便点击字段。

在图片上添加形状并将其与数据相关联的最佳方法是什么?

4 个答案:

答案 0 :(得分:1)

在Image控件上叠加自定义绘制UserControl。使其中的一部分透明以显示底层图像,但仍然能够捕获鼠标交互。

您必须计算控件的确切位置(地图左上角的像素偏移)以覆盖正确的地图区域。如何计算偏移量和自定义控件的实际大小取决于地图缩放级别以及是使用GPS坐标还是图像识别来确定需要覆盖的区域。

答案 1 :(得分:1)

Graphics.FillPolygon()

是你的朋友。命中测试相对简单,有几种算法可用

答案 2 :(得分:0)

您的要求与HTML Image Map提供的要求非常相似。看看这个,可能会有帮助,http://www.workwithchoicecuts.com/methodology/revisiting-the-html-image-map/

答案 3 :(得分:0)

你想使用System.Drawing命名空间最初从你的源图像创建一个图形对象..然后你想在它上面绘制,最后将你编辑的图形对象导出到文件系统......

Image image = Image.FromFile(Server.MapPath(String.Format("~/{0}.jpg", "YourImageNameHere")));                 
            Graphics MyGraphic = Graphics.FromImage(LabelImage);
            MyGraphic.DrawRectangle(SomePenObject, Point1, Point2, Point3, Point4);
            Image.Save("C:\somepath.jpg",ImageFormat.Jpeg);