【问题标题】:How do I show a picture in a chart?如何在图表中显示图片?
【发布时间】:2014-08-12 06:15:34
【问题描述】:

我想在图表中显示一张图片。 DataTable 是图表的DataSource

我试过这段代码:

data.Columns.Add("Image", typeof(byte[]));
DataRow dr = table.NewRow();
Image img = Image.FromFile(@"Chart.jpg");
dr["Image"] = imageToByteArray(img);

public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
    MemoryStream ms = new MemoryStream();
    imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
    return ms.ToArray();
}

还有:

  data.Columns.Add("Image", typeof(Image));
  DataRow dr = data.NewRow();
  Image img = Image.FromFile(@"Chart.jpg");
  dr["Image"] = img;

但只会显示文本:System.Drawing.Bitmap。

【问题讨论】:

  • dataDataGridView,这就是您所说的 "chart" 的意思吗? (当我重新提出这个问题时,我假设了最有可能发生的情况,但想确定一下。)
  • 什么图表?你如何添加它?发布该代码。
  • 图表是组织结构图。
  • Page.Controls.Add(mychart); mychart.DataSource = 数据; mychart.DataBind();

标签: c# winforms datagridview datatable system.drawing


【解决方案1】:

我认为您应该将列类型更改为字节:

System.Byte[]

data.Columns.Add("Image", Type.GetType("System.Byte[]"));
DataRow dr = data.NewRow();
Image img = Image.FromFile(@"Chart.jpg");
dr["Image"] = imageToByteArray(img);

【讨论】:

  • 这真的有效吗?我想知道为什么该列的数据类型为Image,但实际值为byte[]...?
  • 不,我得到一个错误:System.Byte 和 Image 这里:dr["Image"] = img;
  • 对不起,我忘记更改列类型,编辑答案,测试它,我希望它工作正常
  • 使用你的代码我得到一个错误,这两种类型是不同的。我想你的意思是:data.Columns.Add("Image",typeof(Byte[]));
猜你喜欢
  • 2017-04-29
  • 2022-11-16
  • 2018-04-18
  • 2011-07-11
  • 2015-10-16
  • 1970-01-01
  • 2011-01-28
  • 2014-12-20
  • 1970-01-01
相关资源
最近更新 更多