sql数字转换为字符_Python|图片转换为字符画^_^
但什么是字符畫呢?先看一下官方介紹:
字符畫,一種由字母、標點、漢字或其他字符組成的圖畫。簡單的字符畫是利用字符的形狀代替圖畫的線條來構成簡單的人物、事物等形象,它一般由人工制作而成;復雜的字符畫通常利用占用不同數(shù)量像素的字符代替圖畫上不同明暗的點,它一般由程序制作而成。字符畫是互聯(lián)網(wǎng)時代的產(chǎn)物,通常應用于即時聊天中。
簡單一句話:就是把圖片 png、jpg 等格式轉為文本 txt 格式。例如這個
要把圖像轉換為文本,這其中有一個很大的困難,就是文本沒有顏色,所以特別引進了一個概念:文本灰度,就是把不同字母在屏幕上顯示的大小排序,得到一張灰度表,用這個灰度表來轉換圖片,可以達到比較好的效果。
話不多說,還是上代碼才是硬道理。
友情提示:如果還未安裝PIL,請先安裝。在終端運行該命令:pip install Pillow
第一步:先準備一些會使用到的符號
serarr?=?['@',?'#',?'$',?'%',?'&',?'?',?'*',?'o',?'/',?'{',?'[',?'(',?'|',?'!',?'^',?'~',?'-',?'_',?':',?';',?',',?'.', '`',?'?']第二步:獲取圖片的寬、高、調整圖片灰度;根據(jù)條件創(chuàng)建字符
count = len(serarr) # 字符數(shù)組的長度def toText(image_file): # 該參數(shù)為圖片文件 asd = '' # 儲存字符串 for h in range(0, image_file.size[1]): # 遍歷圖片高度的坐標點 for w in range(0, image_file.size[0]): # 遍歷圖片寬度的坐標點 r, g, b = image_file.getpixel((w, h)) # 獲取圖片各個坐標點的顏色值 gray = int(r * 0.299 + g * 0.587 + b * 0.114) # 調整圖片灰度 asd = asd + serarr[int(gray / (255 / (count - 1)))] # 根據(jù)灰度選擇字符并進行拼接 asd = asd + '\r\n' # 換行 return asd完整代碼如下:
from PIL import Imageserarr = ['@', '#', '$', '%', '&', '?', '*', 'o', '/', '{', '[', '(', '|', '!', '^', '~', '-', '_', ':', ';', ',', '.', '`', ' ']count = len(serarr)def toText(image_file): asd = '' for h in range(0, image_file.size[1]): for w in range(0, image_file.size[0]): r, g, b = image_file.getpixel((w, h)) gray = int(r * 0.299 + g * 0.587 + b * 0.114) asd = asd + serarr[int(gray / (255 / (count - 1)))] asd = asd + '\r\n' return asdimage_file = Image.open("22.jpg") # 打開圖片tmp = open('tmp.txt', 'a') # 打開保存文件,如果沒有該文件會自動創(chuàng)建tmp.write(toText(image_file)) # 寫入tmp.close()不到20行的代碼就完成個該功能,有沒有很簡單?!快來試一下吧。下面來欣賞一下我的成果。
PS友情提示:
1、如果運行完發(fā)現(xiàn) txt 文件打開之后不像圖片,可縮小字體查看,直到圖片顯示完全。
2、如果出現(xiàn)類似紅點點的內容,可將 txt 自帶的檢查拼寫這個功能取消。
總結
以上是生活随笔為你收集整理的sql数字转换为字符_Python|图片转换为字符画^_^的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matplotlib调节colorbar
- 下一篇: 手机上python编程工具3和3h有区别