不确定我正在尝试做的事情是否会奏效,甚至可能。基本上我正在创建一个远程桌面类型的应用程序,它将屏幕捕获为 jpeg 图像并将其发送到客户端应用程序进行显示。
我想通过将图像与旧图像进行比较并仅发送差异来减少每次发送的数据量。例如:
var bitmap = new Bitmap(1024, 720);
string oldBase = "";
using (var stream = new MemoryStream())
using (var graphics = Graphics.FromImage(bitmap))
{
graphics.CopyFromScreen(bounds.X, bounds.Y, 0, 0, bounds.Size);
bitmap.Save(stream, ImageFormat.Jpeg);
string newBase = Convert.ToBase64String(stream.ToArray());
// ! Do compare/replace stuff here with newBase and oldBase !
// Store the old image as a base64 string.
oldBase = newBase;
}
使用类似这样的东西,我可以比较两个 base64 字符串并替换任何匹配项。匹配的文本可以替换为:
[替换的字符数]
这样,在客户端我知道在哪里替换旧数据并添加新数据。同样,我不确定这是否会起作用,因此非常感谢任何人对此的想法。:) 如果可能的话,你能指出我正确的方向吗?谢谢。