python特效之字符成像詳解
更新時間:2022年01月11日 15:54:00 作者:autofelix
這篇文章主要為大家介紹了python特效之字符成像,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
一、特效預(yù)覽
處理前
處理后
細節(jié)放大后
二、程序原理
- 將圖片所在的 256 的灰度映射到相應(yīng)的字符上面
- 也就是 RGB 值轉(zhuǎn)成相應(yīng)的字符
- 然后再將字符其寫入文件即可
你聽懂了嗎
三、程序源碼
#!/usr/bin/env python # encoding: utf-8 from PIL import Image class charsetPicture: ''' This is a main Class, the file contains all documents. One document contains paragraphs that have several sentences It loads the original file and converts the original file to new content Then the new content will be saved by this class ''' def __init__(self): self.char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") self.width = 160 self.height = 60 def hello(self): ''' This is a welcome speech :return: self ''' print('*' * 50) print(' ' * 18 + '圖片轉(zhuǎn)換為字符圖片') print(' ' * 5 + 'Author: autofelix Date: 2022-01-07 13:14') print('*' * 50) return self def get_char(self, r, g, b, alpha=256): ''' 將256灰度映射到70個字符上,也就是RGB值轉(zhuǎn)字符的函數(shù) :alpha: 透明度 :return: self ''' if alpha == 0: return ' ' length = len(self.char) gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) unit = (256.0 + 1) / length return self.char[int(gray / unit)] def run(self): ''' The program entry ''' im = Image.open('assets/aaa.jpeg') im = im.resize((self.width, self.height), Image.NEAREST) txt = '' for i in range(self.height): for j in range(self.width): txt += self.get_char(*im.getpixel((j, i))) txt += '\n' print(txt) with open('handler.txt', 'w') as f: f.write(txt) if __name__ == '__main__': charsetPicture().hello().run()
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
python 獲取一個值在某個區(qū)間的指定倍數(shù)的值方法
今天小編就為大家分享一篇python 獲取一個值在某個區(qū)間的指定倍數(shù)的值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11Python基礎(chǔ)中所出現(xiàn)的異常報錯總結(jié)
本篇文章介紹了Python基礎(chǔ)中所出現(xiàn)的異常報錯總結(jié),這是Python日常所常見的錯誤,現(xiàn)在總結(jié)出來給大家。2016-11-11python json 遞歸打印所有json子節(jié)點信息的例子
今天小編就為大家分享一篇python json 遞歸打印所有json子節(jié)點信息的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02python“靜態(tài)”變量、實例變量與本地變量的聲明示例
這篇文章主要給大家介紹了關(guān)于python“靜態(tài)”變量、實例變量與本地變量的聲明的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Pycharm學(xué)習(xí)教程(7)虛擬機VM的配置教程
這篇文章主要為大家詳細介紹了最全的Pycharm學(xué)習(xí)教程第七篇,Python快捷鍵相關(guān)設(shè)置,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05pytorch dataloader 取batch_size時候出現(xiàn)bug的解決方式
今天小編就為大家分享一篇pytorch dataloader 取batch_size時候出現(xiàn)bug的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02