私がやろうとしていることがうまくいくかどうか、または可能かどうかさえわかりません。基本的には、画面を 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 文字列を比較し、一致するものを置き換えることができました。一致したテキストは、次のようなものに置き換えることができます。
【差し替え文字数】
そうすれば、クライアント側で古いデータを置き換えて新しいデータを追加する場所がわかります。繰り返しますが、これが機能するかどうかはわかりませんので、これについての考えをお寄せください。:) 可能であれば、私を正しい方向に向けていただけますか? ありがとう。