2011-11-29 45 views
1

許多免費的桌面共享工具軟件在市場上,但我正在考慮編寫自己的桌面共享工具,使用c#第一次只用於局域網。該實用程序將在兩臺機器上運行。第一次發件人應用程序將其桌面圖像的完整圖像發送到另一臺稱爲接收器的機器。在接收機上運行的應用程序只需接收圖像並顯示在自己的窗口上。第二次發件人將採用其自己桌面的當前快照並與前一張進行比較,並僅向第二臺設備發送差異,以便通過網絡發送最低數據。如果沒有發現差異,則通過網絡向另一臺機器發送任何信息。如何計算「遠程桌面」共享的最小增量?

所以我正在尋找圖像比較代碼,發現很多,但沒有人以這種方式提供代碼,以形成第三個圖像的差異。所以我的問題是,當差異將被髮送到第二臺機器時,第二臺機器應該與不同的圖像數據一起形成第三個圖像以及先前的圖像數據。

我的腦海裏沒有任何邏輯可以編寫與前一幅圖像數據差異的代碼。請幫助我的概念或代碼。謝謝

+0

這不是一個「做我的作業平臺」 – Fischermaen

回答

2

一個簡單的方法可以將屏幕分成多個區塊 - 比方說,每個像素尺寸都是40x40像素(我只是做了這個)。

然後,對於每個圖塊,只需將其與上一個圖塊進行比較,並只發送「髒」圖塊及其位置。

這種方法也可以平凡地擴展到以動態的方式工作(例如遞歸地分割四分之一)。另外,不要忘記圖像壓縮(例如PNG),其實際上可以通過發送較大的瓦片組而受益。

快樂編碼。

+0

你可以提供代碼打破屏幕圖像在幾個時間,然後比較每一次與其他...我不是先行開發人員...所以我只是無法想象整個事情。 –