加载/保存图像错误

Posted

技术标签:

【中文标题】加载/保存图像错误【英文标题】:Loading/Saving images misorder 【发布时间】:2012-03-31 09:24:57 【问题描述】:

我的目录中只有 PNG 图像(580 张图像)。 我使用此功能将图像加载到内存中

private List<Bitmap> images = new List<Bitmap>();

foreach (String s in Directory.GetFiles(@"frames\", "*.png"))
     
        images.Add(new Bitmap(s));
     

但是在加载之后,如果我尝试将所有图像保存到硬盘:

System.IO.Directory.CreateDirectory("result");
for (int i = 0; i < images.Count; i++)
   
      images[i].Save(Application.StartupPath + "\\result\\img" + i + ".png", ImageFormat.Png);
   

有些图像在加载到内存之前以错误的顺序保存。

可能是什么问题?

【问题讨论】:

请不要在标题前加上“C#”之类的前缀。这就是标签的用途。 当顺序很重要时,我尽量避免使用foreach,严格来说,它并不能保证按您期望的顺序进行枚举。但是,我不确定这是您问题的根源。 最初按什么度量排序 - 名称、分机、修改日期、创建日期...? 【参考方案1】:

如果您需要对文件名进行排序 - 您需要手动完成,因为无法保证 GetFiles 返回文件名的顺序。

即只需按名称排序:

foreach (String s in Directory.GetFiles(@"frames\", "*.png").OrderBy(t=>t))

 ...

【讨论】:

【参考方案2】:

访问这里

http://www.codeproject.com/Articles/33310/C-Save-and-Load-Image-from-Database

【讨论】:

以上是关于加载/保存图像错误的主要内容,如果未能解决你的问题,请参考以下文章

图像错误,未加载 S3 图像检索

从二进制文件加载图像像素时出现 C++ 分段错误

当图像保存在核心数据的集合视图中时,应用程序因内存错误而崩溃

在pygame中临时保存图像

画布在 LoadFromJson 后抛出污染错误

C#picturebox覆盖保存GDI+ 中发生一般性错误