python實現(xiàn)趣味圖片字符化
更新時間:2019年04月30日 10:39:20 作者:Good_Luck_Kevin2018
這篇文章主要為大家詳細介紹了python實現(xiàn)趣味圖片字符化,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了python實現(xiàn)趣味圖片字符化的具體代碼,供大家參考,具體內容如下
主要使用PIL庫
先放效果圖:


代碼如下:
#coding=utf-8
from PIL import Image
ascii_char = list('MW$#@%&KERTYOJKLUIC{}*mnxgouic()<>\!~:;^·.')
def get_char(r,b,g,alpha = 256):
if alpha==0:
return ' '
gray = int(0.2126 * r + 0.7152 * g + 0.0722 *b)
unit = 256 / len(ascii_char)
return ascii_char[int(gray/unit)]
def main():
chage_image=input("請輸入待轉化照片的名字")
im = Image.open(chage_image)
width, height = im.width,im.height
#im = im.resize((width,height))
txt = "" #存放待寫入的字符 使用NotePad+ 縮放觀看
for i in range(height):
for j in range(width):
txt += get_char(*im.getpixel((j, i)))
txt += '\n'
input_file_name = chage_image[:-4]+".txt"
print(input_file_name)
with open(input_file_name,"w") as f:
f.write(txt)
print (input_file_name[:-4],"制作完成!")
if "__name__" =="__main__":
main()
其他類似這種制作的原理都是一樣的,效果的差異,主要是對ascii_char列表里字符排列,
原則上,那些字符能給人視覺上占的面積大的排前面,占比少的排后面,列表元素越多,生成的圖片細節(jié)越細膩。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
解決python2 繪圖title,xlabel,ylabel出現(xiàn)中文亂碼的問題
今天小編就為大家分享一篇解決python2 繪圖title,xlabel,ylabel出現(xiàn)中文亂碼的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
一個Python優(yōu)雅的數(shù)據(jù)分塊方法詳解
在做需求過程中有一個對大量數(shù)據(jù)分塊處理的場景,具體來說就是幾十萬量級的數(shù)據(jù),分批處理,每次處理100個。這時就需要一個分塊功能的代碼。本文為大家分享了一個Python中優(yōu)雅的數(shù)據(jù)分塊方法,需要的可以參考一下2022-05-05
Python調用Java數(shù)據(jù)接口實現(xiàn)CRUD操作的詳細指南
Python和Java作為兩種流行的編程語言,在企業(yè)級應用中常常需要實現(xiàn)跨語言的數(shù)據(jù)交互,下面我們就來看看如何在Django Python項目中調用Java數(shù)據(jù)接口實現(xiàn)CRUD操作吧2025-04-04
python3.6實現(xiàn)學生信息管理系統(tǒng)
這篇文章主要為大家詳細介紹了python3.6實現(xiàn)學生信息管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-02-02

