首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Image.FromFile非常慢

Image.FromFile非常慢
EN

Stack Overflow用户
提问于 2016-06-27 17:37:45
回答 1查看 1.2K关注 0票数 2

我正在尝试加载图像图标在不脆弱的超翼。为此,我试图对行进行非分类,并根据条件加载相应的图像。

但是当我尝试使用Image.FromFile()时,我的性能非常慢

请建议如何修复更快的网格加载。

代码语言:javascript
复制
    Private Sub ugMain_InitializeRow(sender As Object, e As InitializeRowEventArgs) Handles ugMain.InitializeRow
    If e.Row.Cells("Delays").Value = 0 Then
        e.Row.Cells("Indicator").Value = Image.FromFile("Images\\RoundedGreen.png")
    Else
        e.Row.Cells("Indicator").Value = Image.FromFile("Images\\RoundedRed.png")

    End If
End Sub
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-27 19:19:08

Image.FromFile并不慢,但是您对每条记录调用它的方式,可能会给您带来一些性能损失。您正在调用该方法,该方法与每一行的文件系统交互。

不必从文件系统中为网格中的每一行加载这些图像,您可以使用以下任何一个选项:

  • 您可以加载这些图像一次,并将它们放入List<Image>中,然后每次需要它们时,都可以从list by index (例如Images[0] )获取图像。如果您想按键访问这些图像,可以使用Plutonix中提到的Dictionary<string , Image>,然后可以使用Images["RoundedGreen"]获取图像。
  • 不必依赖文件系统上的图像,您可以使用应用程序的Resources.Resx文件在编译时存储这些图像。然后,每次需要在运行时使用这些图像时,您都可以使用My.Resources.RoundedGreen找到它们。

示例

例如,可以在表单级别定义Images成员:

代码语言:javascript
复制
Dim Images As Dictionary(Of String, Image) = New Dictionary(Of String, Image)()

然后在某个地方,例如在表单的Load事件中,加载图像:

代码语言:javascript
复制
Images.Add("RoundedGreen", Image.FromFile("Path to RoundedGreen image"))
Images.Add("RoundedRed", Image.FromFile("Path to RoundedRed image"))

然后,在需要使用这些映像的地方,您可以通过以下方式从Images成员那里获得它们:Images("RoundedGreen")

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38059990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档