貼圖的實(shí)現(xiàn)方式為:
1、把剪切板中的圖片存在本地的SendingImages目錄,存放的格式使用PNG,當(dāng)然可以其他格式,但是PNG格式更小。
2、使用MD5算法產(chǎn)生一個(gè)ImageID。當(dāng)然可以使用SHA1等其他算法
3、把imageID發(fā)送remote peer
4、當(dāng)remote peer收到imageID時(shí),檢查本地ReceivedImage目錄,如果已經(jīng)存在,顯示圖片,不存在則發(fā)送一個(gè)RequestImage請(qǐng)求,并在聊天記錄中顯示一個(gè)等待信息(為一個(gè)GIF動(dòng)畫)。
5、本地Peer收到RequestImage請(qǐng)求之后,發(fā)送圖片數(shù)據(jù)。如果圖片大于64K,則分塊發(fā)送。
6、remote peer收到圖像數(shù)據(jù)之后,進(jìn)行校驗(yàn),看是否正確。
7、校驗(yàn)通過后,把圖片在聊天面板上顯示(替換等待圖片)
預(yù)定義表情的實(shí)現(xiàn)很簡(jiǎn)單,自定義表情的實(shí)現(xiàn)和貼圖實(shí)現(xiàn)一致,只是少了從剪貼板保存圖片的過程。