python特效之字符成像詳解
一、特效預(yù)覽
處理前
處理后
細(xì)節(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個(gè)字符上,也就是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 獲取一個(gè)值在某個(gè)區(qū)間的指定倍數(shù)的值方法
今天小編就為大家分享一篇python 獲取一個(gè)值在某個(gè)區(qū)間的指定倍數(shù)的值方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11Python基礎(chǔ)中所出現(xiàn)的異常報(bào)錯(cuò)總結(jié)
本篇文章介紹了Python基礎(chǔ)中所出現(xiàn)的異常報(bào)錯(cuò)總結(jié),這是Python日常所常見的錯(cuò)誤,現(xiàn)在總結(jié)出來給大家。2016-11-11python json 遞歸打印所有json子節(jié)點(diǎn)信息的例子
今天小編就為大家分享一篇python json 遞歸打印所有json子節(jié)點(diǎn)信息的例子,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02python“靜態(tài)”變量、實(shí)例變量與本地變量的聲明示例
這篇文章主要給大家介紹了關(guān)于python“靜態(tài)”變量、實(shí)例變量與本地變量的聲明的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11Pycharm學(xué)習(xí)教程(7)虛擬機(jī)VM的配置教程
這篇文章主要為大家詳細(xì)介紹了最全的Pycharm學(xué)習(xí)教程第七篇,Python快捷鍵相關(guān)設(shè)置,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-05-05pytorch dataloader 取batch_size時(shí)候出現(xiàn)bug的解決方式
今天小編就為大家分享一篇pytorch dataloader 取batch_size時(shí)候出現(xiàn)bug的解決方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02python基于雙向鏈表實(shí)現(xiàn)LFU算法
這篇文章主要為大家詳細(xì)介紹了python基于雙向鏈表實(shí)現(xiàn)LFU算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05