- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道有类似的帖子,但我的问题没有得到任何答案,因此发布了这个。
我有一个方法可以从图像路径中检索并返回图像。下面是我使用的代码片段。这在某些情况下会失败,因为图像在返回后会丢失。
public static Image GetImageFromPicPath(string strUrl)
{
WebResponse wrFileResponse;
wrFileResponse = WebRequest.Create(strUrl).GetResponse();
using (Stream objWebStream = wrFileResponse.GetResponseStream())
{
return Image.FromStream(objWebStream);
}
}
如果我使用 Bitmap 类并返回图像,元数据就会丢失。
如果我使用 MemoryStream(如下所示)并且我不处理 MemoryStream,它就可以工作。但是这里可能存在内存泄漏。如果我使用 block ,图像就会丢失。
MemoryStream ms = new MemoryStream();
objWebStream.CopyTo(ms, 8192);
return System.Drawing.Image.FromStream(ms);
有人可以建议我解决这个问题的最佳方法吗。
提前致谢!
最佳答案
这就是它对你不起作用的原因(来自 https://msdn.microsoft.com/en-us/library/93z9ee4x(v=vs.110).aspx ):
这是一篇更详细地讨论这个问题的帖子:Loading an image from a stream without keeping the stream open
试试这个:
public static Image GetImageFromPicPath(string strUrl)
{
using (WebResponse wrFileResponse = WebRequest.Create(strUrl).GetResponse())
using (Stream objWebStream = wrFileResponse.GetResponseStream())
{
MemoryStream ms = new MemoryStream();
objWebStream.CopyTo(ms, 8192);
return System.Drawing.Image.FromStream(ms);
}
}
在你的消费代码中做这样的事情:
using (var image = GetImageFromPicPath("http://imgur.com/123456.png"))
{
//use image
}
通过在 using 语句中包装“var image”,将在图像上调用 Dispose(),这也会 Dispose() 并释放图像使用的底层 MemoryStream。
关于c# - 使用 Image.FromStream 返回图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34640803/
我有一些代码可以做到 MemoryStream ms = new MemoryStream(); ... return Image.FromStream(ms); 它以非常不拘一格的方式失败,因为 I
我有这个示例代码: Flux range = Flux.range(0, 10); Flux longs = Flux.fromStream(new Random().longs(100, 500).
我正在尝试从 MemoryStream 获取图像。当在 MemoryStream 中我有一个大的 JPG 图像(在步骤中转换为位图后,大小从 38MB 增加到超过 1.3GB,评论为有问题)我得到一个
我想加载XNA SoundEffect。 我尝试使用: SoundEffect.FromStream(TitleContainer.OpenStream(XXX)); XXX是地址,但它需要内容中的地
我正在尝试从字节数组创建图像。字节数组由指纹扫描仪创建(参见 CaptureFrame 方法)。 fwidth 为 256,fheight 为 255。 当我运行下面的代码时,我得到 System.A
我有以下代码: var request = (HttpWebRequest)HttpWebRequest.Create(url); var response = request.GetResponse
我知道有类似的帖子,但我的问题没有得到任何答案,因此发布了这个。 我有一个方法可以从图像路径中检索并返回图像。下面是我使用的代码片段。这在某些情况下会失败,因为图像在返回后会丢失。 public st
我正在尝试使用 Image 类的方法 FromStream 来设置使用网络流的 tcp 连接接收的图像。这里有两个方面的代码: 服务器: TcpListener server = new TcpLis
我在 VS 2010、.Net 4.0 中工作。在 Windows 窗体应用程序中,这是可以的: Image img = Image.FromStream(imagePart.GetStream())
我正在创建一个远程桌面程序,因此我开发了一个类,用于拍摄客户端计算机的快照并将每个图像以字节数组格式发送到服务器。然后服务器读取这些字节并将流转换为 System.Drawing.Image 类型。但
我在 C# 中这样做: Image image = Image.FromStream(fullSizeAppLogo.FileStream); FileStream 属性在单独的类中定义为: publ
我有一些使用 SoundEffect.FromStream 开始播放声音的 Windows Phone 7 代码。我正在使用它而不是普通的媒体对象,因为我需要在一页上显示多个音频剪辑。 但是,基于某些
我担心这个重载中的第三个参数,validateImageData。文档对此没有太多解释,只说它会导致图像数据被验证但没有详细说明,到底做了什么来验证图像数据? public static Image
我有以下代码: Image tmpimg = null; HttpWebRequest httpWebRequest = (HttpWebRequest)HttpWebRequest.Create(u
我正在尝试从数据库中获取 blob,但有时会收到“无效参数”错误 在这一行 System.Drawing.Image objimg = System.Drawing.Image.FromStream(
我的内容页面上有一个 Image 元素。我想在我的 ContentPage 的构造函数中将 MemoryStream 源分配给它。这在 Samsung Galaxy A3 (Android 5.0.2
我试图在 C# 中找到一种方法,无需使用 Image.FromStream 即可将字节数组转换为 Image。 我想要一个可以在 Windows 和 Linux 中使用的转换例程,我正在使用 Mono
我想问一下如何从文件加载 Texture2D 图像(我不想使用 XNA 的内容管道)同时保持图像的透明度,因为我想在我的游戏中蒙皮。 我的代码: 使用 _cursor.Texture = _helpe
我有一个应用程序,它处理图像并调整图像大小,在长时间的迭代过程中偶尔会出现 OutOfMemoryException。 我将我的图像作为文件流存储在数据库中,在处理过程中我需要将它们保存到一个临时的物
我有一个服务帐户,我将其 Json 文件下载到我的 android studio 的“assets”文件夹中。然后我从谷歌自己的文档中复制/粘贴代码并得到空值。 我尝试了各种方法来读取我的json文件
我是一名优秀的程序员,十分优秀!