c# - 在收到所有数据之前,如何开始显示隔行扫描的 PNG?

标签 c# .net winforms gdi+

我的连接速度很慢,我需要发送 PNG 图像(作为字节流)并立即显示图像。我有一个 C# WinForms 应用程序接受 byte[],将其加载到内存流中,并从中创建一个 System.Drawing.Image/Bitmap 对象。

我想做的是向下发送超低分辨率图像,然后逐步更新它,以便在接收到数据时变得更清晰。看起来 PNG 支持交错图像,这正是我想要的。

是否可以在接收到所有数据之前开始显示 PNG,并在接收到其余数据时逐渐使其更清晰?我该怎么做?

最佳答案

您必须以符合 Adam7 algorithm 的方式传送字节。 .可能可以用 Google 搜索第 3 方库,它以这样一种方式提供字节,从而减少了艰苦的工作。

这是一个 visual example它会做什么。

编辑: LibPNG for Windows might be a start .当然,它的 DLL 会要求您的 .NET 程序与非托管代码和非 MSIL 程序集进行交互,这是我确信在 stackoverflow 上的其他地方发布的另一个故事——或者您可以特别为它创建另一个问题。 LibPNG 是一个开源项目,因此查看其源代码可能会深入了解 Adam7 算法,该算法可以在 C#/.NET 中重新编码。

关于c# - 在收到所有数据之前,如何开始显示隔行扫描的 PNG?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1645452/

相关文章:

c# - 是否可以编译一个C#程序在Android手机上运行?

c# - MongoDB .NET 驱动程序 2.0 中的 FindAll

.net - 如何安全访问 DataGridView 列名?

c# - 关键字 global::when adding reference

C# WPF - 只允许某些文件扩展名

c# - 如何在散点图中绘制超过 50,000 个值,从而节省计算机资源?

c# - 如何保护 C# 代码不被修改

c# - 使用 linq 按父级对对象列表进行分组以输出子元素

winforms - VS2010表单大小和屏幕分辨率问题

c# - 有什么方法可以自动化 Windows 窗体测试吗?