Carregando/salvando imagens incorretamente
-
14-12-2019 - |
Pergunta
Recebi um diretório cheio apenas de imagens PNG (580 imagens).Carrego as imagens na memória com esta função
private List<Bitmap> images = new List<Bitmap>();
foreach (String s in Directory.GetFiles(@"frames\", "*.png"))
{
images.Add(new Bitmap(s));
}
Mas depois de carregar se eu tentar salvar todas as imagens no disco rígido com isto:
System.IO.Directory.CreateDirectory("result");
for (int i = 0; i < images.Count; i++)
{
images[i].Save(Application.StartupPath + "\\result\\img" + i + ".png", ImageFormat.Png);
}
Algumas imagens são salvas na ordem errada em que estavam antes de serem carregadas na memória.
Qual pode ser o problema?
Solução
Se você precisar classificar os nomes dos arquivos, faça isso manualmente, pois a ordem em que GetFiles retorna os nomes dos arquivos não é garantida.
Ou sejabasta classificar por nome:
foreach (String s in Directory.GetFiles(@"frames\", "*.png").OrderBy(t=>t))
{
...
}
Outras dicas
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow