提问人:Little Boy Blue 提问时间:8/6/2023 最后编辑:DarkBeeLittle Boy Blue 更新时间:8/9/2023 访问量:331
将.gif转换为.ani并保留所有帧
Converting a .gif to a .ani and Keeping All the Frames
答:
2赞
Jonathan Feenstra
8/9/2023
#1
我找不到任何用于编写 ANI 文件的 .NET 库。但是,如果可以选择运行命令来调用外部可执行文件,则 ani-gif 是用 Rust 编写的 CLI,用于将 GIF 转换为 ANI。在撰写本文时,没有可用的预构建二进制文件,因此您必须使用 Cargo 自行构建它:
git clone https://github.com/mzntori/ani-gif.git
cd ./ani-gif
cargo build --release
ani-gif.exe
然后可以在 中找到。可以从 C# 调用此可执行文件,如下所示:./ani-gif/target/release
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);
这应该保留所有原始帧。
评论