【问题标题】:Loading Image to Filestream将图像加载到文件流
【发布时间】:2010-07-24 16:00:54
【问题描述】:

我正在使用

加载图像
OpenFileDialog open = new OpenFileDialog();

在我选择文件后,“打开”会填充几个项目,包括路径。

现在我想将文件加载到文件流(或类似的东西)中以通过网络服务发送......这可能吗?

谢谢

【问题讨论】:

  • 是的,有可能。还有其他问题吗?
  • 冒着使我的精神能力紧张的风险,我怀疑喉舌实际上可能正在寻找有关如何加载文件的一些提示。如果是这样的话,他们可能想看看这里:social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/…
  • :) steven,我设法加载了文件,例如,我设法将图像加载到图片框中,但我想要一些如何将其加载到文件流中的代码

标签: c# filestream openfiledialog


【解决方案1】:

你可以用FileStream打开文件:

FileStream file = new FileStream("path to file", FileMode.Open);

然后您可以将其传递给 Web 服务 http 上下文 Response.OutputStream 属性。您仍然需要设置正确的 mime 类型和各种标头,但这很有效:

HttpContext.Current.Response.OutputStream = file;

话虽如此,从 Web 服务(或 Web 应用)发送文件的最简单方法是使用 Response.WriteFile 方法:

Response.WriteFile("Path To File");

【讨论】:

  • 如果“文件路径”是嵌入的 BMP,我该怎么办?
  • @warmth - 以流的形式访问嵌入文件并将其传递给输出流。
【解决方案2】:

试试这个:

byte[] buff = System.IO.File.ReadAllBytes(open.FileName);
System.IO.MemoryStream ms = new System.IO.MemoryStream(buff);

【讨论】:

  • 是否可以从buff重新创建文档?
  • 我设法通过使用普通的“new Bitmap()”构造函数转换为位图
【解决方案3】:

是的,可以创建图像

var img = Image.FromFile(/*path*/);

或进入流

var file = new FileStream("path to file", FileMode.Open);

但它应该是热的,它是由你决定的

sendToWs(img)

【讨论】:

  • 如果图像是位图,会保存在位图中吗?或者如果是jpeg,填写保存为jpeg,等等?
  • Image 是一个抽象类,为位图和元文件提供功能。用于保存图像您使用 satatic 方法 save Image.Save(path,format) 其中格式为 ImageFormat
猜你喜欢
  • 1970-01-01
  • 2013-09-04
  • 1970-01-01
  • 2020-09-02
  • 1970-01-01
  • 1970-01-01
  • 2017-06-15
  • 2017-11-09
相关资源
最近更新 更多