В .NET, как я могу рисовать фигуры на картинке? - PullRequest
0 голосов
/ 16 июня 2010

Я занимаюсь программным обеспечением, в котором мне нужно разместить скудные граничные поля на спутниковой карте (.png изображение), чтобы можно было щелкать по полям.

Как лучше всего добавлять фигурыкартинку и связать их с данными?

Ответы [ 4 ]

1 голос
/ 16 июня 2010

Graphics.FillPolygon()

Является ли ваш друг. Тестирование попаданий относительно тривиально, доступно несколько алгоритмов

1 голос
/ 16 июня 2010

Наложение пользовательского элемента управления пользовательского рисования поверх элемента управления изображением.Сделайте часть этого прозрачной, чтобы показать основное изображение, но все же сможете захватывать взаимодействие с мышью.

Вам нужно будет рассчитать точное положение (смещение пикселя от верхнего левого угла карты) вашего элемента управления,наложить правильную область карты.То, как вы рассчитаете это смещение и фактический размер вашего пользовательского элемента управления, зависит от уровня масштабирования карты и от того, используете ли вы GPS-координаты или распознавание изображения, чтобы определить, какую область необходимо наложить.

0 голосов
/ 16 июня 2010

Вы хотите использовать пространство имен 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);
0 голосов
/ 16 июня 2010

Ваше требование очень похоже на то, что обеспечивает HTML-карта изображений. Проверьте это, может быть полезно, http://www.workwithchoicecuts.com/methodology/revisiting-the-html-image-map/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...