本文關(guān)鍵闡述了如何運(yùn)用python完成圖片轉(zhuǎn)化字符畫(huà),文章內(nèi)容緊扣主題進(jìn)行詳盡的基本介紹,具有很強(qiáng)的實(shí)用價(jià)值,必須的朋友可以學(xué)習(xí)一下
序言:
字符畫(huà):字符畫(huà)是一連串標(biāo)識(shí)符的搭配,也可以把標(biāo)識(shí)符看作較為大塊清晰度,一個(gè)字節(jié)能主要表現(xiàn)一個(gè)顏色,標(biāo)識(shí)符的類(lèi)型越大,能夠表現(xiàn)得色調(diào)也就越多,照片還會(huì)更有層次感。
假如他們想要手工制作制作出字符畫(huà),必須要有過(guò)硬的美術(shù)基礎(chǔ)知識(shí),次之還需要耗費(fèi)大量時(shí)間和精力。但我們可以應(yīng)用Python,只需兩行編碼,就可以將一張照片輕而易舉的轉(zhuǎn)化成1個(gè)字符畫(huà)。
案例1
設(shè)計(jì)效果圖:
基礎(chǔ)理論非常簡(jiǎn)單,便是對(duì)圖片實(shí)際操作,這兒需要使用PIL的python包,里有非常好用的數(shù)字圖像處理作用。
先打開(kāi)圖,把圖象修改尺寸:
img=Image.open(picPath) img=img.resize((picW,picH))
隨后載入灰度級(jí),然后把灰度級(jí)和標(biāo)識(shí)符相匹配下去就可以了。
fromPILimportImage lstChars=list("$B%8&WM#*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:UsersAdministratorDesktopaaaaaaa.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+=' ' printtxt
案例2
以下是源代碼:
#-*-coding=utf-8-*- fromPILimportImage IMG='IMG.jpg'#設(shè)置圖片文檔 WIDTH=150#設(shè)置字符畫(huà)的寬 HEIGHT=80#設(shè)置字符畫(huà)的高 OUTPUT='T.txt'#設(shè)置存放字符畫(huà)的文本文件 ascii_char=list("$B%8&WM#*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)為灰度級(jí)gray,灰度級(jí)范圍為0-255 gray=int(0.2126*r+0.7152*g+0.0722*b) #灰度級(jí)范圍為0-255,而字符集只有70 #需要進(jìn)行如下處理才能將灰度級(jí)映射到指定的標(biāo)識(shí)符上 #防止當(dāng)灰度級(jí)為255時(shí),輸出的第70個(gè)字符超出列表索引,所以需要將(255+1) unit=(255.0+1)/length #返回灰度級(jí)對(duì)應(yīng)的標(biāo)識(shí)符 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)為標(biāo)識(shí)符后添加到txt字符串 txt+=get_char(*im.getpixel((j,i))) #遍歷完一行后需要增加換行符 txt+=' ' #輸出到屏幕 print(txt) withopen(OUTPUT,'w')asf: f.write(txt)
同時(shí)黏貼就可以,只需在文件夾中導(dǎo)進(jìn)1張圖片重命名為IMG.jpg。運(yùn)作最后會(huì)形成1個(gè)名叫T.txt的文檔。
原照:
生成文件圖
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)?lái)幫助。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/130257.html
本文關(guān)鍵闡述了運(yùn)用Python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà),要把圖片轉(zhuǎn)字符畫(huà),必須要先界定1個(gè)字段名,用于和灰度級(jí)做投射,將照片每一個(gè)象素的RGB值轉(zhuǎn)化成1個(gè)灰度級(jí),把它相對(duì)應(yīng)的標(biāo)識(shí)符導(dǎo)出就得到了字符畫(huà) 序言 相信大家在網(wǎng)上常??吹接行┤苏宫F(xiàn)出各種各樣字符畫(huà),對(duì)于這些色彩斑斕的全球而言,我們平時(shí)看到的就是某些超清的彩色圖片,有時(shí)候再來(lái)一個(gè)粗糙黑白字符畫(huà),還是比較緩解疲勞的。喜愛(ài)不要忘記個(gè)人收藏、關(guān)心、...
摘要:文章鏈接關(guān)于圖片轉(zhuǎn)字符畫(huà),相信大家都不陌生,經(jīng)常出現(xiàn)在個(gè)超有趣的項(xiàng)目中。今天我也來(lái)實(shí)踐這個(gè)有趣的項(xiàng)目,更進(jìn)一步的是把這個(gè)功能做成一個(gè)在線(xiàn)的網(wǎng)站,直接上傳圖片生成字符畫(huà),在線(xiàn)預(yù)覽可以讓更多的人來(lái)體驗(yàn)。至此,生成字符畫(huà)的腳本完成了。 文章鏈接:https://mp.weixin.qq.com/s/yiFOmljhyalE8ssAgwo6Jw 關(guān)于python圖片轉(zhuǎn)字符畫(huà),相信大家都不陌生...
摘要:字符畫(huà)大家一定非常熟悉了,那么如何把一張現(xiàn)有的圖片轉(zhuǎn)成字符畫(huà)呢讓這個(gè)可能變成了現(xiàn)實(shí),通過(guò),可以很輕松實(shí)現(xiàn)這個(gè)功能。我們只能根據(jù)圖片寬高,來(lái)定義一個(gè)間隔,橫向間隔,縱向間隔取一次像素,這樣可以保證生成的字符畫(huà)大小和原圖保持一致。 showImg(http://segmentfault.com/img/bVbtCk); 猛點(diǎn) 這里 看高清妹子圖。 字符畫(huà)大家一定非常熟悉了,那么如何把一...
摘要:將程序包裝在界面里,可以將輸入通過(guò)多種途徑如文本框彈出路徑選擇等輸入到程序里。將輸出通過(guò)文本框顯示出來(lái)將執(zhí)行信息如如報(bào)錯(cuò)信息運(yùn)行進(jìn)度通過(guò)文本框或進(jìn)度條顯示出來(lái)文章安排先介紹安裝和配合的使用。 作為一個(gè)程序的開(kāi)發(fā)者,我們僅僅需要在相應(yīng)路徑通過(guò)命令行就可執(zhí)行那個(gè)程序。但是,不懂行的人不理解這個(gè)黑框框的東西,陌生領(lǐng)域任何人都沒(méi)有安全感,所以他們是拒絕接受一個(gè)項(xiàng)目?jī)H僅只是通過(guò)一個(gè)黑框框來(lái)執(zhí)行的...
pythonsklearn:教你如何畫(huà)出決策書(shū),并保存為PDF的實(shí)現(xiàn)過(guò)程 這篇文章主要介紹了pythonsklearn畫(huà)出決策樹(shù)并保存為PDF的實(shí)現(xiàn)過(guò)程,這篇文章具有很高的參考價(jià)值,希望各位讀者可以認(rèn)真仔細(xì)的閱讀。 利用sklearn畫(huà)出決策樹(shù)并保存為PDF 下載Graphviz 進(jìn)入官網(wǎng)下載并安裝: https://graphviz.gitlab.io/_pages/Do...
閱讀 892·2023-01-14 11:38
閱讀 837·2023-01-14 11:04
閱讀 688·2023-01-14 10:48
閱讀 1892·2023-01-14 10:34
閱讀 895·2023-01-14 10:24
閱讀 753·2023-01-14 10:18
閱讀 482·2023-01-14 10:09
閱讀 522·2023-01-14 10:02