gpt4 book ai didi

c# - 在 C# 中加载动画 GIF

转载 作者:行者123 更新时间:2023-11-30 15:33:01 26 4
gpt4 key购买 nike

我使用 Adob​​e Flash CS3 创建了一个简单的动画 GIF,GIF 包含 200 帧 (1280x786)。当我加载它以在 C# WPF 应用程序中显示时,程序在以下代码中获取 OutofMemoryException

private void set_gif_Image(String path)
{
if (File.Exists(path))
{
var bitmapimage = new BitmapImage();

bitmapimage.BeginInit();
bitmapimage.UriSource = new Uri(path);
bitmapimage.EndInit();
ImageBehavior.SetAnimatedSource(img_preview, bitmapimage);//Exception Here
}
else
{
var bitmapimage = new BitmapImage();

bitmapimage.BeginInit();
bitmapimage.UriSource = new Uri("C:\\testing_files\\ERROR.gif");
bitmapimage.EndInit();

ImageBehavior.SetAnimatedSource(img_preview, bitmapimage);
}

但如果我加载一个 20 帧的 GIF,程序加载正常。注意以下几种情况:

  • 1280x768,200 帧:异常
  • 550x400,200 帧:加载正常
  • 1280x768,50 帧:加载正常

问题出在哪里?如何无一异常(exception)地加载如此大的动画 GIF?

最佳答案

或者您可以在 Release模式下运行它...不应该为 OutOfMemoryException 而烦恼...

我确实建议您稍微调整一下 GIF 的大小,因为 200fps 1280x768 位图代表大量内存...

让我们看看...1 帧代表 983040 像素...(1280 x 768),每个像素由 3 种颜色的数据组成,因此 3 字节等于:3 * 983040 = 2949120 字节仅用于一帧...你有 200 个……所以:589824000 字节。这等于 576000 kBytes 或 562.7 MBytes...

这太可怕了......

关于c# - 在 C# 中加载动画 GIF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18034107/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com