在我编写的.NET CF应用程序中,功能之一是从远程摄像机获取帧。帧以单个jpeg图像的形式获取,并在可用时显示在屏幕上。
这是一个足够好的解决方案,但我不喜欢使用Image
构造函数将流转换为Bitmap()
对象所需的时间远比下载流所需的时间长得多的事实。 。
当我浏览一些博客以搜索有关此问题时,我发现一些开发人员正在使用Image.FromStream()
方法,该方法的validateImageData
标志似乎控制着一些验证代码。如果validateImageData
为false,则转换速度将大大加快。
好,我以为..但是紧凑框架没有实现这种方法!
任何人都知道如何解决它,或者至少如何在没有不必要的延迟的情况下将流转换为Image
吗?
最佳答案
不确定这是否有帮助,但是OpenNETCF.Drawing.Imaging具有用于从流中读取图像的类,但是它们是IImage包装的com对象。然后,您可以使用IImage.Draw将其绘制到位图上。它还有一个GetThumbnail方法,我用它来获取设备上大jpeg的缩放图像。
Here是Alex Feinman的博客文章。