<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
字元畫:字元畫是一系列字元的組合,我們可以把字元看作是比較大塊的畫素,一個字元能表現一種顏色,字元的種類越多,可以表現的顏色也越多,圖片也會更有層次感。
如果我們想要手工繪製出字元畫,首先要有紮實的美術基礎,其次還要花費大量的時間和精力。但是我們可以使用Python,只需要幾行程式碼,就能夠將一張圖片輕而易舉地轉化為一個字元畫。
效果圖:
理論很簡單,就是對圖片操作,這裡需要用到PIL的python包,裡面有很好用的影象處理功能。
先開啟圖片,把影象調整大小:
img = Image.open(picPath) img = img.resize((picW, picH))
然後讀取灰度值,再把灰度值和字元對應起來就行。
from PIL import Image lstChars = list("$@B%8&WM#*oahkbdpqwmZO0QLaCJUYXzczjhdhsdavunxrjft/|()1{}[]?-_+~<>i!lI;:,"^`'.") def oneChars(r, g, b, alpha = 256): global lstChars length = len(lstChars) gray = int(0.2126 * r + 0.7152 * g + 0.722 * b) index =length*gray return lstChars[index] picPath = "C:UsersAdministratorDesktop\aaaaa\aa.png" picH = 40 picW = 80 img = Image.open(picPath) img = img.resize((picW, picH)) txt = "" for y in range(picH): for x in range(picW): txt += oneChars(img.getpixel((x, y))) txt += 'n' print txt
下面是原始碼:
# -*- coding=utf-8 -*- from PIL import Image IMG = 'IMG.jpg' # 設定圖片檔案 WIDTH = 150 # 設定字元畫的寬 HEIGHT = 80 # 設定字元畫的高 OUTPUT = 'T.txt' # 設定存放字元畫的文字檔案 ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,"^`'. ") # 設定顯示的字元集 # 將256灰度對映到70個字元上 def get_char(r, g, b, alpha=256): # alpha為透明度 # 判斷 alpha 值,為0表示全透明 if alpha == 0: return ' ' # 獲取字元集的長度,這裡為 70 length = len(ascii_char) # 將 RGB 值轉為灰度值 gray,灰度值範圍為 0-255 gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) # 灰度值範圍為 0-255,而字元集只有 70 # 需要進行如下處理才能將灰度值對映到指定的字元上 # 防止當灰度值為255時,輸出的第70個字元超出列表索引,所以需要將(255+1) unit = (255.0 + 1) / length # 返回灰度值對應的字元 return ascii_char[int(gray / unit)] if __name__ == '__main__': # 開啟並調整圖片的寬和高 im = Image.open(IMG) im = im.resize((WIDTH, HEIGHT), Image.NEAREST) # 初始化輸出的字串 txt = "" # 遍歷圖片中的每一行 for i in range(HEIGHT): # 遍歷該行中的每一列 for j in range(WIDTH): # 將 (j,i) 座標的 RGB 畫素轉為字元后新增到 txt 字串 txt += get_char(*im.getpixel((j, i))) # 遍歷完一行後需要增加換行符 txt += 'n' # 輸出到螢幕 print(txt) with open(OUTPUT, 'w') as f: f.write(txt)
直接貼上即可,只需要在資料夾中匯入一張圖片重新命名為IMG.jpg。執行結果會生成一個名為T.txt的檔案。
原圖:
生成檔案圖:
到此這篇關於如何利用python實現圖片轉化字元畫的文章就介紹到這了,更多相關python字元畫內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45