毫无疑问,这是不可能的,但我想看看是否有人提出了巧妙的建议。我们有一个第三方程序集,它可以使用内部方法“ SaveToFile”将定制数据库内部存储的图像输出到文件,例如:
3rdParty.Scripting.ImageManager man = new 3rdParty.Scripting.ImageManager("ref");
3rdParty.Scripting.Image itemImg = man.GetImage(orderNumber);
itemImg.SaveToFile("c:\file.jpg")
ItemImg.SaveToFile没有返回类型,仅在内部创建一个位图并将其写入文件流。我们绝对无法访问编译的方法。
我需要做的是以某种方式截取文件流并读取位图,我知道这可能是不可能的,但是我不是绝对专家,所以想看看是否有一种神奇的方法可以做到这一点。
如果所有其他方法均失败,则我将保存文件,然后将其读回,我只是想避免保存到磁盘上,而在磁盘上我可能能够直接获取数据,并最终将其转换为base64字符串值。
不幸的是,除非第三方库提供一种SaveToStream
可以从外部提供流的方法,否则无法实现所追求的目标。您将必须将内容保存到临时文件中,然后再读回内容。
这就是为什么在设计库以提供将Streams作为I / O参数的方法时通常是最佳实践的原因,因为这将使消费者可以控制是否要将其保存到文件,内存或网络流中。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句