这是代码:
if (Form1.sf != null)
{
radarDI = new DirectoryInfo(Form1.sf);
radarFiles = radarDI.GetFiles("*.png");
for (int i = radarFiles.Length - 1; i >= 0; i--)
{
radarImage = Image.FromFile(radarFiles[i].Name);
radarImage.Save(FileName, System.Drawing.Imaging.ImageFormat.Gif);
myGifListRadar.Add(radarFiles[i].Name);
if (myGifListRadar.Count == 5)
{
break;
}
}
radar_animation.MakeGIF(myGifListRadar, @"d:\RadarGifAnimatoion.gif", 8, true);
}
我想将所有 png 文件转换为 gif。因为我需要创建动画 gif 并且它只获取 gif 文件。所以现在我将 png 文件保存到硬盘进行转换,然后从硬盘读回 gif 文件:
radarImage.Save(FileName, System.Drawing.Imaging.ImageFormat.Gif);
FileName 应该稍后在我保存的文件上,然后读回以使用它。问题是是否有任何方法可以将文件转换为 gif 而无需先将其保存到硬盘?一些更快的方法,然后将文件保存到硬盘转换,然后再次使用 FileInfo 将它们作为 gif 再次读取?
刚刚更新:
using (var ms = new MemoryStream())
{
if (Form1.sf != null)
{
radarDI = new DirectoryInfo(Form1.sf);
radarFiles = radarDI.GetFiles("*.png");
for (int i = radarFiles.Length - 1; i >= 0; i--)
{
radarImage = Image.FromFile(radarFiles[i].FullName);
radarImage.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
myGifListRadar.Add(radarFiles[i].Name);
if (myGifListRadar.Count == 5)
{
break;
}
}
}
radar_animation.MakeGIF(myGifListRadar, @"d:\RadarGifAnimatoion.gif", 8, true);
}
但现在这部分:
radarImage.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
myGifListRadar.Add(radarFiles[i].Name);
myGifListRadar 是列表我现在如何将radarImage 作为字符串文件名添加到列表中?