加载图像时出现内存不足异常

2023-12-07

我使用以下代码将图像作为缩略图加载到 FlowLayoutPanel 控件。不幸的是我遇到了 OutOfMemory 异常。

正如您已经猜测的那样,内存泄漏是在该行发现的

 Pedit.Image = System.Drawing.Image.FromStream(fs)

那么我该如何优化以下代码呢?

 Private Sub LoadImagesCommon(ByVal FlowPanel As FlowLayoutPanel, ByVal fi As FileInfo)
        Pedit = New DevExpress.XtraEditors.PictureEdit
        Pedit.Width = txtIconsWidth.EditValue
        Pedit.Height = Pedit.Width / (4 / 3)
        Dim fs As System.IO.FileStream
        fs = New System.IO.FileStream(fi.FullName, IO.FileMode.Open, IO.FileAccess.Read)
        Pedit.Image = System.Drawing.Image.FromStream(fs)
        fs.Close()
        fs.Dispose()
        Pedit.Properties.SizeMode = DevExpress.XtraEditors.Controls.PictureSizeMode.Zoom

        If FlowPanel Is flowR Then
            AddHandler Pedit.MouseClick, AddressOf Pedit_MouseClick
            AddHandler Pedit.MouseEnter, AddressOf Pedit_MouseEnter
            AddHandler Pedit.MouseLeave, AddressOf Pedit_MouseLeave
        End If

        FlowPanel.Controls.Add(Pedit)
    End Sub

Update:加载大量图像时会出现此问题(3264x2448px,300dpi - 每个图像约为 3Mb)


文档用于Image.FromFile(这与你的FromStream)说它会抛出OutOfMemoryException如果文件不是有效的图像格式或者 GDI+ 不支持像素格式。您是否可能尝试加载不受支持的图像类型?

另外,文档Image.FromStream表示您必须在图像的生命周期内保持流打开,因此即使您的代码加载了图像,您也可能会收到错误,因为您在图像仍处于活动状态时关闭文件。看http://msdn.microsoft.com/en-us/library/93z9ee4x.aspx.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

加载图像时出现内存不足异常 的相关文章

  • 如何从一个清晰的例子计算二维图像中的吉布斯能量

    我有一个关于矩阵的有趣问题 在吉布斯分布中 吉布斯能量U x 可以计算为 这是所有可能的派系 C 上的派系势 Vc x 的总和 右图 团 c 被定义为 S 中站点的子集 x 蓝色像素的邻域是左图中黄色像素的邻居 其中每对不同的站点都是邻居
  • 装配和产品版本不匹配

    我正在尝试在 asp net 网站中使用 Ajax 控件工具包 我从之前的一个示例项目中复制了 dll 它有以下详细信息 Assembly Version 3 5 40412 0 File Version 3 5 40412 2 Inter
  • Drupal 8 图像与图像样式

    在drupal 7中 我使用函数image style url style uri 生成具有样式的新图像并返回图像的路径 那么在 drupal 8 中会用什么来代替它呢 谢谢 Per the 变更记录 https www drupal or
  • 如何将 SD 卡图像添加到 coverflow?

    Here is my coverflow with drawables This is my Image Adapter Code The Constant IMAGE RESOURCE IDS private static final L
  • 如何将 Emgu.Cv.Image 转换为 System.Image

    我是 Emgu Cv 的新手 我想知道是否有人可以让我知道如何将 Emgu Cv Image 更改为 System Image 如果需要进一步解释 请告诉我 我会这样做 我的语言我使用的是C 你可以只使用ToImage 方法得到一个Syst
  • .tostring() 保留前导零[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 转换对象
  • PHP显示图片从url到主页

    在没有人回答这个问题之后Php Rss feed 在 CDATA gt content encoded 中使用 img https stackoverflow com questions 31771729 php rss feed use
  • 从 RichTextBox 复制文本及其格式

    如何将 RichTextBox 中的文本及其格式复制到写字板或网络浏览器 就像复制纯文本一样 您可以使用Clipboard SetText method http msdn microsoft com en us library 6eahs
  • 从twitter api实体参数php获取图像url

    我正在尝试通过实体参数使用 php 获取并显示在推文中发布的图像 我的 url 中有 include entities 可以看到返回的 json 中的实体 在我的 foreach 循环中 我正在执行以下操作 foreach results
  • VB.NET - 类中的扩展函数?

    我正在尝试创建一个类库 其中包含将二进制整数转换为十进制的函数 反之亦然 这样我就可以将其导入到另一个项目中 而无需重写该函数 它工作得很好 这是课程的一部分 Public Class BinaryDenary Public Shared
  • Activator.CreateInstance 缺少方法异常

    我在 C dll 中有一个类 其中包含以下类 public class RequiredTask Base BaseObject public string Name get set public string Description ge
  • 带图像的简单 GUI [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我试图在简单的 GUI 上显示一些卡
  • 如何移动图像(动画)?

    我正在尝试在 x 轴上移动船 还没有键盘 我如何将运动 动画与boat png而不是任何其他图像 public class Mama extends Applet implements Runnable int width height i
  • Gridview rowdatabound访问数据项vb

    我正在尝试将 ImageUrl 指向 GridView 中模板字段中的图像 但不断收到错误 你调用的对象是空的 在这一行 Dim imagePath As String rowView image path 我以前从未在 GridView
  • CSS 中的分层图像 - 可以将 2 个图像放在同一个元素中吗?

    假设我在 CSS 中为网页设置背景图像 如下所示 body font size 62 5 Resets 1em to 10px font family Verdana Arial Sans Serif background color 9D
  • 是否有一个类可以获取应用程序中的默认图片查看器?

    我不想访问 iPhone 上的图像 我想显示我的应用程序中的图像 但就像您查看 iPhone 相册中的图片一样 使用所有捏合和缩放控件等 这可能吗 我认为可能 偶然 有像 AVMediaPlayer 类这样的类可以做到这一点 谢谢 汤姆 如
  • 命令行批量图像裁剪工具

    有没有可以处理多种格式的轻量级命令行批量图像裁剪工具 Linux或Windows 在 Linux 中你可以使用 mogrify crop Width x Height X Y repage image png 用于 CLI 图像处理
  • vb.net:查找字符串中字符串的位置?

    vb net 中是否使用 instr 来实现此目的 使用 String IndexOf http msdn microsoft com en us library system string indexof aspx http msdn m
  • 英文日期差异

    接近重复 如何计算相对时间 https stackoverflow com questions 11 how do i calculate relative time 如何在 C 中计算某人的年龄 https stackoverflow c
  • 在什么情况下,使用 HTTP/2 单独加载图像会比使用 HTTP/1.1 中的精灵一次加载所有图像慢?

    HTTP 2 使多路复用连接成为可能 从而消除了与服务器的多个连接的需要 通过单个连接 可以将许多单独的图像发送到客户端 这避免了将多个图像组合成一个并使用 CSS 将其分开的旧图像精灵模式 我很好奇精灵在 HTTP 2 世界中是否仍然会更

随机推荐

  • 如何重新组装 javap 生成的 java 字节码? [复制]

    这个问题在这里已经有答案了 我希望能够编辑字节码并重新编译为可执行类文件 我不知道该怎么做 我尝试使用 javap c 和 v 进行反编译 编辑一些内容 然后将其更改回我的 Class 文件 但出现错误 错误 无法找到或加载主类 Test
  • 如何在 Python 中使用 mutagen 将封面图像添加到 mp3 文件?

    下面的代码似乎没有更新 mp3 文件的插图 代码 from mutagen id3 import ID3 APIC audio ID3 musicFilename with open coverFilename rb as albumart
  • Java 中 == 和 .equals 之间的区别。

    我知道这已经被涵盖了 但我在这里看到了不一致的论点 所以如果我有 String a apple2e String b apple2e System out println a b a b I get FALSE 据我了解 这是因为a and
  • 将工件添加到标准 Maven 部署

    我希望有人可以帮助我进行 Maven 部署 通常通过发布插件运行 我想在发布时将除了打包的 jar 之外的文件部署到存储库 例如特定的说明文档和生成的 SQL 文件 如果我不必使用就好了deploy deploy file为每一个 如果我可
  • 如何控制 PyYAML 对我的数据使用哪种标量形式?

    我有一个具有短字符串属性和长多行字符串属性的对象 我想将短字符串写为 YAML 带引号的标量 将多行字符串写为文字标量 my obj short Hello my obj long Line1 nLine2 nLine3 我希望 YAML
  • 用户身份验证后重定向回页面选项卡?

    在用户验证我的应用程序后 我应该如何将用户重定向回我的页面选项卡 我无法输入一个特定的网址进行重定向 因为我的应用程序将驻留在多个页面上 所以我需要以某种方式获取页面的 id 并将其放入 url 中 我尝试过使用会话变量 但它似乎对我不起作
  • PHP 四舍五入不起作用

    我有这个代码 我想将两位小数四舍五入到一半 我期望值为 0 58 但上面的代码打印 0 57 我怎样才能做到这一点 如果您期望 0 58 则不必使用 半轮 而是使用 ceil 函数 v 0 575 echo ceil v 100 100 s
  • SQLAlchemy 中的编译扩展:索引中使用的函数

    我想在 SQLAlchemy 中创建一个不区分大小写的唯一约束 它可以与 Postgres 和 SQLite 一起使用 在Postgres中是这样实现的 SQL CREATE UNIQUE INDEX my index ON my tabl
  • 删除前面没有 NULL 的换行符

    我有一串数据 在我需要删除的行中插入了随机 CRLF 并以正确的 CRLF 结束了我需要保留的数据 我尝试使用 Notepad 正则表达式尝试将以下内容替换为空 NULL r n 但是 它不会删除插入的 CRLF 关于如何在 Notepad
  • 使用用户输入创建新对象 [JAVA]

    您好 我正在尝试创建一个程序 每当用户输入某个对象的新信息时就创建一个新对象 目前我有这个 import java util Scanner public class Main public static void main String
  • 无法销毁使用 Core Data 和 SQLite 创建的持久存储

    我有一个 iOS 应用程序 我想在每次启动时都从一个新的核心数据数据库开始 存储类型是 SQLite 但是 当我调用 persistenceStoreCoordinator destroyPersistentStore 时 100 都会收到
  • 通过 preg_replace 使用文本中的电话号码

    我可以使用 preg replace 在文本中查找电话号码 text preg replace d s 8 25 0 9 d strong 1 strong text 但是 我正在开发一个小功能 其中电话号码将被混淆 因此我需要实际的电话号
  • 是否有适用于 iphone sdk 的谷歌日历 api?

    有没有适用于 iphone sdk 的谷歌日历 api 目前我开发了一个 iphone 日历本机应用程序 在此应用程序中 我想从两侧与谷歌日历同步 所以我想知道是否有任何谷歌日历 API 可以完成这项工作 I found iphone gc
  • 上下文菜单的 SwiftUI 自定义视图

    我想在视图上长按手势时实现相同的自定义弹出视图 如照片 来自 Tweeter 应用程序 所示 这样我就可以同时显示自定义视图和上下文菜单 您需要进行定制ContextMenu using UIContextMenu from UIKit s
  • 我的 getJSON 调用随机返回结果,而不是它们被调用的顺序

    我需要制作多个getJSON请求将数据写入 HTML 文件 此示例显示了 3 个请求 但我将以相同的格式添加最多 6 个请求 可能更多 我的问题是结果以随机顺序返回 而不是按调用顺序返回 我怀疑它们是按照请求完成的顺序返回的 我每次都必须以
  • SQL 中的空字符文字是什么?

    我想知道 a 的字面意思是什么空字符 例如 0 在 SQL 中 Note 不是 NULL 字段值 而是空字符 see link 我有一列混合了典型字符和空字符 我正在尝试用不同的值替换空字符 我本以为以下内容会起作用 但没有成功 selec
  • 如何在 Swift 中按长度反向/降序对字符串数组进行排序?

    我想根据长度按降序排列字符串集合 首先 我不确定是否应该使用集合或数组 因为集合是无序事物的集合 并且我不需要集合中的元素必须位于有序集合中 我遇到了sorted 方法和sorted by 方法 但无法弄清楚如何按长度降序排列 仅按字母顺序
  • 使 WPF 数据网格中的行不可聚焦

    我试图弄清楚如何使以下 WPF DataGrid 中的行不可聚焦 正如你所看到的 我尝试添加一个
  • Unity C#,如何从另一个脚本调用函数来启动动画?

    using UnityEngine using System Collections public class ClickToMoveScript MonoBehaviour public string Chopping Chopping
  • 加载图像时出现内存不足异常

    我使用以下代码将图像作为缩略图加载到 FlowLayoutPanel 控件 不幸的是我遇到了 OutOfMemory 异常 正如您已经猜测的那样 内存泄漏是在该行发现的 Pedit Image System Drawing Image Fr