GDI 和 System.Drawing 不支持 WebP 影像。為了在我的 C# Windows 桌面應用程式中處理它們,我使用 Magick.NET 將它們轉換為受支持的 Gif 影像。這很有效,除非 WebP 影像是影片的。我用來測驗影片影像轉換的代碼如下:
public void TestConvertImageType() {
using (var animatedWebP = new MagickImage("animated.webp")) {
animatedWebP.Write("animated-generated.gif", MagickFormat.Gif);
}
using (var animatedGif = new MagickImage("animated.gif")) {
animatedGif.Write("animated-generated.webp", MagickFormat.WebP);
}
}
如果拖動到 chrome 瀏覽器中,animated.webp 和animated.gif 都會播放。但是,生成的影像都不會播放。在 chrome 中,它們只顯示影片源影像的第一幀。
使用 ImageMagick 的命令列版本,我可以使用以下腳本將影片.webp 和影片.gif 轉換為可播放的影像:
magick animated.webp animated-generated.gif
magick animated.gif animated-generated.webp
所以我知道 ImageMagick 支持轉換影片影像。
我安裝的 Magick.NET 版本是 Magick.NET-Q8-AnyCPU 8.5.0
我安裝的 ImageMagick 版本是 ImageMagick-7.1.0-Q8
我的 C# 應用程式使用 .NET Framework 4.8
誰能告訴我我的 C# 應用程式需要做什么才能從影片 webp 生成可播放的影片 gif?
uj5u.com熱心網友回復:
AMagickImage只是一個影像。當讀取影片影像時,這將是第一幀。如果要讀取所有幀,則需要使用 來讀取檔案MagickImageCollection。
public void TestConvertImageType() {
using (var animatedWebP = new MagickImageColection("animated.webp")) {
animatedWebP.Write("animated-generated.gif", MagickFormat.Gif);
}
using (var animatedGif = new MagickImageColection("animated.gif")) {
animatedGif.Write("animated-generated.webp", MagickFormat.WebP);
}
}
而且你不需要在你的機器上安裝 ImageMagick。ImageMagick 庫隨 Magick.NET 庫一起提供。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/402149.html
