python實現(xiàn)趣味圖片字符化
本文實例為大家分享了python實現(xiàn)趣味圖片字符化的具體代碼,供大家參考,具體內(nèi)容如下
主要使用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("請輸入待轉(zhuǎn)化照片的名字")
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é)越細膩。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
解決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調(diào)用Java數(shù)據(jù)接口實現(xiàn)CRUD操作的詳細指南
Python和Java作為兩種流行的編程語言,在企業(yè)級應(yīng)用中常常需要實現(xiàn)跨語言的數(shù)據(jù)交互,下面我們就來看看如何在Django Python項目中調(diào)用Java數(shù)據(jù)接口實現(xiàn)CRUD操作吧2025-04-04
python3.6實現(xiàn)學(xué)生信息管理系統(tǒng)
這篇文章主要為大家詳細介紹了python3.6實現(xiàn)學(xué)生信息管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-02-02
python溫度轉(zhuǎn)換華氏溫度實現(xiàn)代碼
這篇文章主要介紹了python溫度轉(zhuǎn)換華氏溫度實現(xiàn)代碼內(nèi)容,有需要的朋友們可以測試下。2020-12-12

