本文關(guān)鍵闡述了運(yùn)用Python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫,要把圖片轉(zhuǎn)字符畫,必須要先界定1個字段名,用于和灰度級做投射,將照片每一個象素的RGB值轉(zhuǎn)化成1個灰度級,把它相對應(yīng)的標(biāo)識符導(dǎo)出就得到了字符畫
序言
相信大家在網(wǎng)上常常看到有些人展現(xiàn)出各種各樣字符畫,對于這些色彩斑斕的全球而言,我們平時看到的就是某些超清的彩色圖片,有時候再來一個粗糙黑白字符畫,還是比較緩解疲勞的。喜愛不要忘記個人收藏、關(guān)心、關(guān)注點(diǎn)贊。
字符畫的基本原理
這類字符畫的基本原理也非常簡單,也可以把每一個標(biāo)識符看作是一個很大的象素,一個字節(jié)能夠意味著一個顏色,標(biāo)識符各種越大,可展現(xiàn)的色調(diào)越大,字符畫就更有層次感。
灰度級和RGB
灰度級就是指黑白圖像中心點(diǎn)顏色深度,它范疇是0-255,乳白色為255,灰黑色為0,深顏色處于二者之間。
RGB是三原色三色調(diào),通過各種的累加可以得到深顏色。
要把圖片轉(zhuǎn)字符畫,必須要先界定1個字段名,用于和灰度級做投射,將照片每一個象素的RGB值轉(zhuǎn)化成1個灰度級,把它相對應(yīng)的標(biāo)識符導(dǎo)出就得到了字符畫。
RGB轉(zhuǎn)灰度級,有一個變換學(xué)公式計算:
gray=(2126*r+7152*g+722*b)/10000
編碼實(shí)戰(zhàn)演練
我隨便選取了一張照片:
我的目標(biāo)是轉(zhuǎn)化成下邊那樣:
依據(jù)之上變換工作原理,大家直接用編碼:
fromPILimportImage char=list('M3NB6Q#OC?7>!:–;.') defget_char(r,g,b,alpha=256): ifalpha==0: return'' grey=(2126*r+7152*g+722*b)/10000 char_idx=int((grey/(alpha+1.0))*len(char)) returnchar[char_idx] defwrite_file(out_file_name,content): withopen(out_file_name,'w')asf: f.write(content) defmain(file_name="input.jpg",width=100,height=80,out_file_name='output.txt'): text='' im=Image.open(file_name) im=im.resize((width,height),Image.NEAREST) foriinrange(height): forjinrange(width): text+=get_char(*im.getpixel((j,i))) text+=' ' print(text) write_file(out_file_name,text) if__name__=='__main__': main('dance.png')
程序流程構(gòu)思:
界定1個二維數(shù)組,這一二維數(shù)組里邊的標(biāo)識符能夠隨便寫。
解析圖片,將照片里邊的每一個像素數(shù)分析成RGB值。
依據(jù)大家上邊的公式計算,將每一個像素數(shù)轉(zhuǎn)化成二維數(shù)組里邊的一個字節(jié)。
把所有像素數(shù)相對應(yīng)的標(biāo)識符拼湊下去,就完成變換。
匯總
圖片轉(zhuǎn)字符畫,轉(zhuǎn)化的設(shè)計原理構(gòu)思還是很簡單的,完成也并不復(fù)雜,你們可以出手試一試!
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)韼椭?/p>
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/129045.html
摘要:文章鏈接關(guān)于圖片轉(zhuǎn)字符畫,相信大家都不陌生,經(jīng)常出現(xiàn)在個超有趣的項(xiàng)目中。今天我也來實(shí)踐這個有趣的項(xiàng)目,更進(jìn)一步的是把這個功能做成一個在線的網(wǎng)站,直接上傳圖片生成字符畫,在線預(yù)覽可以讓更多的人來體驗(yàn)。至此,生成字符畫的腳本完成了。 文章鏈接:https://mp.weixin.qq.com/s/yiFOmljhyalE8ssAgwo6Jw 關(guān)于python圖片轉(zhuǎn)字符畫,相信大家都不陌生...
本文關(guān)鍵闡述了如何運(yùn)用python完成圖片轉(zhuǎn)化字符畫,文章內(nèi)容緊扣主題進(jìn)行詳盡的基本介紹,具有很強(qiáng)的實(shí)用價值,必須的朋友可以學(xué)習(xí)一下 序言: 字符畫:字符畫是一連串標(biāo)識符的搭配,也可以把標(biāo)識符看作較為大塊清晰度,一個字節(jié)能主要表現(xiàn)一個顏色,標(biāo)識符的類型越大,能夠表現(xiàn)得色調(diào)也就越多,照片還會更有層次感?! 〖偃缢麄兿胍止ぶ谱髦谱鞒鲎址?,必須要有過硬的美術(shù)基礎(chǔ)知識,次之還需要耗費(fèi)大量時間和...
摘要:一幅圖像全部轉(zhuǎn)成字符序列后,就可以直接在控制臺輸出了。讀取視頻使用了,并直接用它提供的方法轉(zhuǎn)了灰度圖,在之前的文章中也有過介紹,計算機(jī)視覺開發(fā)利器這一步比較重要,因?yàn)橛械囊曨l分辨率很高,直接一個像素轉(zhuǎn)一個字符的話量太大,所以先縮小圖片。 今天分享的這段代碼,看起來沒啥實(shí)際用處,而且有些反潮流,因?yàn)楝F(xiàn)如今大家看視頻都追求更高分辨率的超清畫質(zhì),而我們這個,是 一個超不清的視頻播放器 : 在...
摘要:最近花了幾天時間,做了一個圖片轉(zhuǎn)字符畫的工具,一開始想做成用服務(wù)器來生成圖像的形式,但是后來發(fā)現(xiàn)可以不依賴服務(wù)器生成圖片,順便還能把項(xiàng)目托管到上,因此就把項(xiàng)目做成了純前端的形式。 最近花了幾天時間,做了一個圖片轉(zhuǎn)字符畫的工具,一開始想做成用服務(wù)器來生成圖像的形式,但是后來發(fā)現(xiàn)可以不依賴服務(wù)器生成圖片,順便還能把項(xiàng)目托管到 Github Pages 上,因此就把項(xiàng)目做成了純前端的形式。 ...
閱讀 1068·2023-01-14 11:38
閱讀 1064·2023-01-14 11:04
閱讀 905·2023-01-14 10:48
閱讀 2380·2023-01-14 10:34
閱讀 1148·2023-01-14 10:24
閱讀 1028·2023-01-14 10:18
閱讀 657·2023-01-14 10:09
閱讀 735·2023-01-14 10:02