How can I convert a .gif to a .ani and maintain all the frames from the gif when converting over to ani in C#?
21 Answer
I was not able to find any .NET libraries for writing ANI-files. However, if running a command to call an external executable is an option, ani-gif is a CLI written in Rust for converting GIFs to ANI. No pre-built binaries are available at the time of writing, so you would have to build it yourself using Cargo:
git clone
cd ./ani-gif
cargo build --releaseani-gif.exe can then be found in ./ani-gif/target/release. This executable can be called from C# as follows:
using System.Diagnostics;
const string cliPath = @"path\to\ani-gif.exe";
void ConvertGifToAni(string gifPath, string aniPath, uint frameRate, string hotSpot="0:0")
{ var startInfo = new ProcessStartInfo { FileName = cliPath, ArgumentList = { "convert", "-g", gifPath, "-a", aniPath, "-f", frameRate.ToString(), "--hotspot", hotSpot, }, CreateNoWindow = true, }; var proc = Process.Start(startInfo); proc?.WaitForExit();
}
ConvertGifToAni( gifPath: @"path\to\cursor.gif", aniPath: @"path\to\cursor.ani", frameRate: 5);This should retain all of the original frames.
0