用python画qq表情_用Python编写提取QQ表情的脚本
該樓層疑似違規(guī)已被系統(tǒng)折疊?隱藏此樓查看此樓
一般情況下不開(kāi)官方的QQ客戶端,而是用一些開(kāi)源的QQ客戶端,比如 Luma QQ 和 Gaim 等。最近看到一些QQ表情挺有意思的,可惜非官方的客戶端上不能安裝表情文件包,實(shí)在不想因?yàn)檫@些表情啟動(dòng)官方的客戶端,于是寫(xiě)個(gè)腳本把里面的圖片提出來(lái),這樣想在什么地方用都行了。
#
#???????? QQ表情Gif文件提取
#
#???????? 搜索D盤(pán)根目錄下的 eip 文件,
#???????? 輸出其中的 GIF 到 d:/tmpGif目錄
#
#???????? AntiyLabs
#????? 不累的王
#???????? 2006-10-18
#
import os
import glob
sum = 0
# gif 的文件頭為 GIF87a, GIF89a
gHead = 'GIF8'
# gif 的結(jié)尾標(biāo)志為 \x3b\x00
gFoot = '\x3b\x00'
for i in glob.glob('d:/*.eip'):
print "processing\t" + i
# 二進(jìn)制方式打開(kāi)文件
# QQ的表情文件包啊,真是...連個(gè)壓縮都沒(méi)有...
# 頭部一堆填充數(shù)據(jù),然后是一個(gè)XML,描述GIF文件名稱和對(duì)應(yīng)的BMP縮略圖
# 然后就是一個(gè)接一個(gè)的原始圖片文件數(shù)據(jù)了
#...別的俺也不關(guān)心,俺只想要里面的GIF。忽略XML部分,直接找GIF文件特征~
content = open(i, 'rb').read()
# 創(chuàng)建每個(gè)表情文件對(duì)應(yīng)的子目錄
dirname = os.path.join(r'd:/tmpGif', os.path.split(i)[1])
os.mkdir(dirname)
gset = content.find(gHead)
while True:
glen = content[gset : ].find(gFoot) + len(gFoot)
# 為啥要找第二個(gè)結(jié)束標(biāo)志呢?gif那個(gè)官方文檔啊...簡(jiǎn)直形同虛設(shè)么...
# 有可能是什么"應(yīng)用程序擴(kuò)展"的結(jié)束符--"出現(xiàn)次數(shù)可能大于等于0"...不管了。
glen += content[gset + glen:].find(gFoot) + len(gFoot)
fname = os.path.join(dirname, os.tmpnam().strip('\\') + '.gif')
print '%s:\ngset: %u\nglen: %u'%(fname, gset, glen)
#a = raw_input()
fo = open(fname, 'wb')
fo.write(content[gset : gset+glen])
fo.close()
step = content[gset + glen : ].find(gHead)
if step < 0:
break
gset += glen + step
sum += 1
print '%u Files Extract Complete!'%(sum)
轉(zhuǎn)自:創(chuàng)意安天論壇
總結(jié)
以上是生活随笔為你收集整理的用python画qq表情_用Python编写提取QQ表情的脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python中try...except的
- 下一篇: python udp 传输文件_pyth