如何将DataVisualization.Charting.Chart的图像转换为iTextSharp.text.Image而不需要写入文件?

4

我正在编写一款用于展示测量数据的软件。为此,我使用System.Windows.Forms.DataVisualization.Charting.Chart,并且我知道可以通过chartObj.SaveImage将显示的图像保存到文件中。

我的软件需要进行PDF导出,并包含该图片。为此,我使用iTextSharp。同样,我知道如何通过iTextSharp.text.Image.GetInstance将保存在文件中的图片放入PDF中。

因此,我能够获取图表的图片,将其存储到文件中(例如.jpg文件),然后再加载该文件以将其放入PDF中。现在,我正在寻找一种不需将图片存储到文件中的好方法,可能是通过流或类似方法。我已经尝试了很长时间,但到目前为止没有成功。我曾考虑过这样的做法:

Stream imageStream = image of chartObj;
iTextSharp.text.Image picture = iTextSharp.text.Image.GetInstance(imageStream);

据我所理解,我无法将chartObj中的图片放入流中而不是文件中。如果成功实现,我想我可以通过iTextSharp.text.Image.GetInstance加载流。
有人能提供帮助吗?我猜这并不难,但我对C#和iText都很新,所以我在这里有点困惑。
感谢您对此事的任何思考!
安娜
1个回答

6

就这样啦!非常感谢,运行得很好!(以为很容易呢……) - anna
1
注意:应将“GetBuffer”更改为“ToArray”,因为“GetBuffer”返回整个缓冲区,包括垃圾数据。 - VahidN

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接