如何使用 Magick.NET (imagemagick) 和 C# 将 APNG 转换为 WEBP?
How to convert APNG into WEBP by using Magick.NET (imagemagick) and C#?
我试过这样但是APNG动画丢失了
我也在寻找无损但最大压缩的设置。我不关心 CPU 时间速度等。我需要无损和最大压缩。如何实现?
所以我有很多 PNG 文件和一些 APNG 文件
我会全部转成WEBP文件
但我还是想保留APNG动画
这里是要测试的 APNG 示例:https://static.pokemonpets.com/images/npcTrainers/trainer15125down.png
using (var image = new MagickImage(@"path\Debug\a.png"))
{
image.Quality = 100;
image.Settings.SetDefine(MagickFormat.WebP, "lossless", true);
image.Settings.SetDefine(MagickFormat.WebP, "method", "6");
image.Write("a.webp");
}
C# .net 框架 4.8,Magick.NET-Q16-AnyCPU,7.24.1.0
如果您想读取包含多个帧的图像,您将需要改用 MagickImageCollection
:
using (var images = new MagickImageCollection(@"apng:path\Debug\a.png"))
{
var defines = new WebPWriteDefines
{
Lossless = true,
Method = 6,
};
images.Write("a.webp", defines);
}
如果您想阅读动画 PNG 文件,您需要在 %PATH%
中添加 ffmpeg.exe
。这是读取动画 PNG 文件所必需的。您还需要添加 apng:
以确保 ImageMagick 知道它是一个动画 PNG 文件。
我试过这样但是APNG动画丢失了
我也在寻找无损但最大压缩的设置。我不关心 CPU 时间速度等。我需要无损和最大压缩。如何实现?
所以我有很多 PNG 文件和一些 APNG 文件
我会全部转成WEBP文件
但我还是想保留APNG动画
这里是要测试的 APNG 示例:https://static.pokemonpets.com/images/npcTrainers/trainer15125down.png
using (var image = new MagickImage(@"path\Debug\a.png"))
{
image.Quality = 100;
image.Settings.SetDefine(MagickFormat.WebP, "lossless", true);
image.Settings.SetDefine(MagickFormat.WebP, "method", "6");
image.Write("a.webp");
}
C# .net 框架 4.8,Magick.NET-Q16-AnyCPU,7.24.1.0
如果您想读取包含多个帧的图像,您将需要改用 MagickImageCollection
:
using (var images = new MagickImageCollection(@"apng:path\Debug\a.png"))
{
var defines = new WebPWriteDefines
{
Lossless = true,
Method = 6,
};
images.Write("a.webp", defines);
}
如果您想阅读动画 PNG 文件,您需要在 %PATH%
中添加 ffmpeg.exe
。这是读取动画 PNG 文件所必需的。您还需要添加 apng:
以确保 ImageMagick 知道它是一个动画 PNG 文件。