我想在一个指定大小的图片上,在指定位置打一个点,然后,对该点进行注释,
就好比在一个地图上,做上记号,并写上城市名称.
请问这个功能怎么实现?最好给我源代码最好,谢谢,
因为好久不搞编程了,不想认真研究这个功能.
200分献上

解决方案 »

  1.   

    是 windows 程序还是 web ?
    你写的那个名字要写在图上
    给你写一个 windows 程序的要web的原理一样控件
    pictureBox1
    textBox1
    自己放置、图片自自己改代码
    这个代码就是个原理性的、如果要保存到数据库还需要一个表记住点位、点的类型等信息、还有记号的形状等using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;namespace WindowsApplication2
    {
    public partial class Form1 : Form
    {
    Dictionary<Point,string> res = new Dictionary<Point,string>();
    public Form1()
    {
    InitializeComponent();

    this.textBox1.BorderStyle = BorderStyle.None;
    this.textBox1.Parent = pictureBox1;
    this.textBox1.ImeMode = ImeMode.On;
    this.textBox1.Visible=false;
    this.pictureBox1.ImageLocation="01.jpg";
    } private void pictureBox1_Click(object sender, EventArgs e)
    {

    } private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
    {
    this.textBox1.Location = e.Location;
    this.textBox1.Visible = true;

    this.textBox1.Focus();
    } private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
    TextBox txtBox = sender as TextBox;
    if(e.KeyCode == Keys.Enter)
    {
    res.Add(txtBox.Location,txtBox.Text.Trim());
    txtBox.Text="";
    txtBox.Visible=false;
    pictureBox1.Invalidate();
    }

    } private void pictureBox1_Paint(object sender, PaintEventArgs e)
    {
    Graphics g= e.Graphics;
    foreach(KeyValuePair<Point,string>  kv in res)
    {
    g.DrawString(kv.Value,this.Font,Brushes.Red,kv.Key.X,kv.Key.Y);
    }
    }
    }
    }
      

  2.   

    这是.net 2.0  的如果是1.1 的自己改改吧原理都一样的、反正这个操作的技术原理部分都在上边了至于数据库怎么设计就简单了。
      

  3.   

    http://www.codeproject.com/csharp/drawtools.asp
    这个画笔工具做得不错,支持修改、撤销、重复
    楼主可以参考一下,虽然现在没有文字工具
      

  4.   

    windows程序,谢谢,我先试用一下
      

  5.   

    我的目的是从execl导出数据,让数据自动显示在图片的某个位置上,并且在该位置做好标识
      

  6.   

    给你的图片创建一个Bitmap对象,用它的SetPixel方法可以在指定坐标上画点。
    注释就用2楼说的Graphic对象的DrawString方法。可以在你显示图片的容器,比如PictureBox的Paint方法中用PictureBox的Graphic对象,也可以在任意时候用Graphic类的静态方法FromImage获得Bitmap对象的Graphic。前者是在PictureBox上画,不影响图片,后者直接画在图片上,如果保存的话会连画上去的内容一块保存。如果不保存就没什么区别。
      

  7.   

    谢谢大家,我想到一个更简单的办法,把图片当作背景,然后,直接在上面创建label控件,谢谢,大家