手把手教你玩轉QQ的原創表情

手把手教你玩轉QQ的原創表情

在這裏先鄙視一下騰訊對於表情圖片的惡意保護。

QQ的原創表情非常的可愛,做得比較精緻,深受廣大QQ用戶的喜愛;但怎麼將這些表情保存下來,好讓我可以在別的地方用呢?

現在網關於QQ原創表情的文章已經很多,但絕大多數是如何導入、導出,對於QQ原創表情爲什麼能在QQ內部複製,卻沒辦法保存到本地缺少說明。

乖乖牛在線將從不同的視角,爲你解析QQ原創表情的存儲、互通、保護的機制;熟悉了這些後,你將不光能夠將自己喜歡的原創表情保存下來;如果你有自己的產品,也可以輕鬆的讓自己的產品支持QQ的原創表情噢。

乖乖牛在線全線產品均支持將QQ原創表情的獲取過來,並且展示在界面上,予以複用。

在乖乖牛產品中如何獲取QQ原創表情

1. 牛牛截圖中如何獲取QQ原創表情

1).先在QQ中複製一張原創表情
這裏寫圖片描述
2).進入http://www.ggniu.cn/testcapture.html頁面,選擇從剪貼板複製
這裏寫圖片描述
3). 點擊截圖,是不是原創表情乖乖的顯示到了頁面上?
這裏寫圖片描述

2. 牛牛圖片查看器中如何獲取QQ原創表情

1). 先在QQ中複製一張原創表情
這裏寫圖片描述
2). 打開牛牛圖片查看器,通過Ctrl+V來粘貼,是不是原創表情已經顯示出來了[可以另存爲保存噢]?
這裏寫圖片描述

3. NiuniuImageOle控件中如何獲取QQ原創表情

NiuniuImageOle不光支持QQ原創表情的複製粘貼,還可以將有原創表情的圖文信息一併粘貼下來噢,實際操作一下吧:
1) 在QQ中輸入一些表情、文字、截圖、原創表情,然後複製
這裏寫圖片描述
2) 打開NiuniuImageOle控件的示例程序,在輸入窗口中點擊粘貼,是不是圖文都全部顯示出來了?
這裏寫圖片描述

想讓你的產品也擁有這樣的功能麼? 趕緊將乖乖牛在線的控件集成到你的產品中吧,完全免費的噢!

原理解析

接下來給大家說一下實現的原理,其實所有的祕密都在Windows的剪貼板中,先給大家介紹一個查看剪貼板數據的工具:InsideClipboard,打開這個工具,當你複製QQ中的圖文信息的時候,你會在InsideClipborad中看到如下信息:
這裏寫圖片描述

如果你的程序能夠順利的讀取剪貼板中的數據,那麼QQ的原創表情就與硬盤上的其他文件無異了。
QQ_Unicode_RichEdit_Format 是騰訊自定義的剪貼板格式,他的內容如下:

<QQRichEditFormat>
<Info version="1001"></Info>
<EditElement type="0"><![CDATA[test ]]></EditElement>
<EditElement type="2" sysfaceindex="105" filepath="" shortcut=""></EditElement>
<EditElement type="0"><![CDATA[  ]]></EditElement>
<EditElement type="5" filepath="C:\Users\zjs\AppData\Local\Temp\2$RR25}U[P64P9(1(6%]V%8" shortcut="" fileid="37b80a9f9f992ab67dd49d0302a3890d" extdata="" tip="" mediatype="0"></EditElement>
</QQRichEditFormat>

注意看那個 type=”5”的結點,這個就是QQ的原創表情,你可以直接把他的路徑複製出來,這就是那個原創表情在電腦上存儲的位置了。

我們再來看看HTML Format,這個是系統上大多數程序都支持的格式了,他的內容如下:

Version:0.9
StartHTML:00000112
EndHTML:00000332
StartFragment:00000126
EndFragment:00000296
<!doctype html><html><body>
<!--StartFragment --><DIV>
test&nbsp;<IMG src="file:///C:\Users\zjs\AppData\Local\Temp\T})N)@B0X~IJR7UWW~1GL0Z.gif" sysface=105>&nbsp;&nbsp;<IMG src="file:///" >
</DIV><!--EndFragment-->
</body>
</html>

注意看後一個Img標籤,他的src路徑是空的,騰訊就是通過不將路徑寫入此結點,來達到保護原創表情的目的的。

在這裏我們大家一起來吐槽一下騰訊的兩個BUG

QQ在複製與粘貼的時候,在特定的情況下,即便不是原創表情,也無法複製粘貼,具體如下:
1. 當有原創表情,又有自定義圖片[如截圖等],其寫入的HTML Format中,連自定義圖片的路徑都看不到了
這裏寫圖片描述
2. 當你在別處寫入了HTML Format格式,如果裏面有不帶擴展名的圖片與文字混合的話,想在QQ中粘貼,是粘貼不上的;

如何避開QQ的BUG?

通過上述剪貼板格式的分析,我想大家應該知道如何支持與QQ的帶原創表情的剪貼板的互通了:
1. 要粘貼時,結合HTML Format與 QQ_Unicode_RichEdit_Format,找到每一個圖片與表情的路徑
2. 向剪貼板寫入數據時,需要同時寫入QQ_Unicode_RichEdit_Format,這樣QQ才能將圖文正常的粘貼到其窗口中

好了,今天就爲大家介紹到了這裏了。

乖乖牛在線主頁:http://www.ggniu.cn/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章