标题听起来很疯狂,但请耐心等待。这是任何对象都可能存在的问题。
我正在内存中生成一个位图对象,我想将它直接传递给另一个想要打开位图文件的函数。简单的解决方案是将文件写入磁盘,针对文件调用函数,然后删除文件。我不想那样做。如果我将大量图像对象推送到带有 VSTO 加载项的 Word 文档中,那么当整个事情都可以在内存中完成时,无缘无故地颠簸我的磁盘是没有意义的。
我想我正在寻找一种不同的功能来将图片插入到接受位图对象的 Word 文档中。或者一种传递实际指向内存的文件系统对象的方法(不是 RAMDisk,而是 RAMFile?)。或者一种将“Image.Save”直接连接到“AddPicture”功能的阅读器而不实际在磁盘上创建文件的方法。
希望有更好的方法来做到这一点。
这是代码示例:
Dim newImage = GenerateImage(InputString, SelectedFormat)
Dim imagePath = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName())
newImage.Save(imagePath, ImageFormat.Png)
With Globals.ThisAddIn.Application
.Selection.InlineShapes.AddPicture(imagePath)
End With
File.Delete(imagePath)