



下載本文檔
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第如何利用python實(shí)現(xiàn)圖片轉(zhuǎn)化字符畫目錄前言:實(shí)例1實(shí)例2
前言:
字符畫:字符畫是一系列字符的組合,我們可以把字符看作是比較大塊的像素,一個(gè)字符能表現(xiàn)一種顏色,字符的種類越多,可以表現(xiàn)的顏色也越多,圖片也會(huì)更有層次感。
如果我們想要手工繪制出字符畫,首先要有扎實(shí)的美術(shù)基礎(chǔ),其次還要花費(fèi)大量的時(shí)間和精力。但是我們可以使用Python,只需要幾行代碼,就能夠?qū)⒁粡垐D片輕而易舉地轉(zhuǎn)化為一個(gè)字符畫。
實(shí)例1
效果圖:
理論很簡(jiǎn)單,就是對(duì)圖片操作,這里需要用到PIL的python包,里面有很好用的圖像處理功能。
先打開(kāi)圖片,把圖像調(diào)整大?。?/p>
img=Image.open(picPath)
img=img.resize((picW,picH))
然后讀取灰度值,再把灰度值和字符對(duì)應(yīng)起來(lái)就行。
fromPILimportImage
lstChars=list("$@B%8WM#*oahkbdpqwmZO0QLaCJUYXzczjhdhsdavunxrjft/\|()1{}[]-_+~i!lI;:,\"^`'.")
defoneChars(r,g,b,alpha=256):
globallstChars
length=len(lstChars)
gray=int(0.2126*r+0.7152*g+0.722*b)
index=length*gray
returnlstChars[index]
picPath="C:\Users\Administrator\Desktop\\aaaaa\\aa.png"
picH=40
picW=80
img=Image.open(picPath)
img=img.resize((picW,picH))
txt=""
foryinrange(picH):
forxinrange(picW):
txt+=oneChars(img.getpixel((x,y)))
txt+='\n'
printtxt
實(shí)例2
下面是源碼:
#-*-coding=utf-8-*-
fromPILimportImage
IMG='IMG.jpg'
#設(shè)置圖片文件
WIDTH=150
#設(shè)置字符畫的寬
HEIGHT=80
#設(shè)置字符畫的高
OUTPUT='T.txt'
#設(shè)置存放字符畫的文本文件
ascii_char=list("$@B%8WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]-_+~i!lI;:,\"^`'.")
#設(shè)置顯示的字符集
#將256灰度映射到70個(gè)字符上
defget_char(r,g,b,alpha=256):
#alpha為透明度
#判斷alpha值,為0表示全透明
ifalpha==0:
return''
#獲取字符集的長(zhǎng)度,這里為70
length=len(ascii_char)
#將RGB值轉(zhuǎn)為灰度值gray,灰度值范圍為0-255
gray=int(0.2126*r+0.7152*g+0.0722*b)
#灰度值范圍為0-255,而字符集只有70
#需要進(jìn)行如下處理才能將灰度值映射到指定的字符上
#防止當(dāng)灰度值為255時(shí),輸出的第70個(gè)字符超出列表索引,所以需要將(255+1)
unit=(255.0+1)/length
#返回灰度值對(duì)應(yīng)的字符
returnascii_char[int(gray/unit)]
if__name__=='__main__':
#打開(kāi)并調(diào)整圖片的寬和高
im=Image.open(IMG)
im=im.resize((WIDTH,HEIGHT),Image.NEAREST)
#初始化輸出的字符串
txt=""
#遍歷圖片中的每一行
foriinrange(HEIGHT):
#遍歷該行中的每一列
forjinrange(WIDTH):
#將(j,i)坐標(biāo)的RGB像素轉(zhuǎn)為字符后添加到txt字符串
txt+=get_char(*im.getpixel((j,i)))
#遍歷完一行后需要增加換行符
txt+='\n'
#輸出到屏幕
print(txt)
withopen(OUTPUT,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 如何提高公共政策的透明度與參與度試題及答案
- 機(jī)電設(shè)備技術(shù)規(guī)范考試題
- 軟件設(shè)計(jì)師考試準(zhǔn)備過(guò)程的關(guān)鍵點(diǎn)試題及答案
- 解析西方政治制度的社會(huì)責(zé)任試題及答案
- 公共政策的效果與社會(huì)公正的關(guān)系研究考點(diǎn)及答案
- 計(jì)算機(jī)軟件測(cè)試方法論的應(yīng)用試題及答案
- 提升網(wǎng)絡(luò)故障響應(yīng)速度的措施與試題及答案
- 公共政策信息化的實(shí)踐試題及答案
- 軟件設(shè)計(jì)師考試職場(chǎng)新人的發(fā)展建議及試題與答案
- 高清晰度軟件設(shè)計(jì)師考試試題及答案
- 互聯(lián)網(wǎng)公司網(wǎng)絡(luò)安全工程師入職培訓(xùn)
- 2025年中南出版?zhèn)髅郊瘓F(tuán)湖南教育出版社分公司招聘筆試參考題庫(kù)含答案解析
- 廣東惠州事業(yè)單位招聘醫(yī)療衛(wèi)生崗考試模擬題帶答案2025年
- 車輛抵頂合同協(xié)議
- 2025春 新人教版美術(shù)小學(xué)一年級(jí)下冊(cè)致敬平凡
- 學(xué)美容管理制度
- 2025年河南省鄭州市中考一模英語(yǔ)試題
- GB/T 13511.2-2025配裝眼鏡第2部分:漸變焦定配眼鏡
- 2024演出經(jīng)紀(jì)人資格考試重要試題及答案
- TCNCIA 01036-2024 變壓器用無(wú)溶劑防腐涂料
- 2024年中考復(fù)習(xí) 滬教版六年級(jí)地理上冊(cè)知識(shí)點(diǎn)
評(píng)論
0/150
提交評(píng)論