我的连接速度很慢,我需要发送 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/