在C#中播放图像序列

时间:2011-04-08 19:09:58

标签: c# image

使用较少CPU的最佳方法是如何在C#中为播放器提供更好的图像序列?

我正在编写一个工业触摸屏应用程序wince 5.图像最大为100kb。不幸的是,我必须使用C#,因为这是一个必须集成到现有应用程序中的表单。

1 个答案:

答案 0 :(得分:1)

集成到C#应用程序并不意味着你必须使用C# - 你可以用C ++或其他语言编写代码并使用p / invoke从C#调用它。但除非你在C#中做一些非常低效的事情,否则你可以获得相当不错的性能(我的工作基本上是用C#编写的飞行模拟器,而且它的性能相当高 - 不如我们用C ++实现的那么高,但仍然是一个完全可行/现实的替代方案,开发速度要快得多。

但是,除非您正在为非常低规格的CPU编写实时应用程序并且它已经在努力跟上其任务,否则在任何可能的帧速率下加载和显示100kB图像应该不是什么大问题。 / p>

由于你没有真正指明你能做什么的界限,所以很难给出准确的答案。

一般情况下,优先使用DirectX / OpenGL优先于GDI而不是GDI +来获得良好的渲染/ blitting性能是有意义的。

如果您可以控制它,那么您可以使用许多文件格式,这将有助于提高速度(通过压缩数据以最大限度地减少要加载的数据量,和/或使用硬件解压缩方法,更好的数据流和缓存方法,预处理以优化图像数据以适应目标硬件等)。如果你有这么大的灵活性,你可以使用视频播放库甚至外部视频播放应用程序来完成所有工作,让你在C#中编写一些简单的“控制逻辑”。通过推出自己的解决方案,这将为您提供比您可能实现的更高效的系统。