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

时间:2009-10-29 17:50:46

标签: c# .net winforms gdi+

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

我想要做的是向下发送超低分辨率图像,然后逐步更新它,以便在接收到数据时更清晰。看起来PNG支持隔行扫描的图像,它可以满足我的需求。

是否有可能在收到所有数据之前开始显示PNG,并且随着其余数据的进入逐渐增加它?我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

您必须以符合Adam7 algorithm的方式传递字节。可能是第三方库可以使用Google搜索来提供字节,以便从中完成艰苦的工作。

这是visual example它会做什么。

修改LibPNG for Windows might be a start。当然它的DLL需要你的.NET程序与非托管代码和非MSIL程序集交互,这是另一个我确定在stackoverflow上发布的故事 - 或者你可能特别为它创建另一个问题。 LibPNG是一个开源项目,因此查看其源代码可能会提供有关可以在C#/ .NET中重新编码的Adam7算法的见解。