Python將圖片轉(zhuǎn)換為字符畫(huà)的方法
最近在學(xué)習(xí)Python,看到網(wǎng)上用Python將圖片轉(zhuǎn)換成字符畫(huà)便來(lái)學(xué)習(xí)一下
題目意思是,程序讀入一個(gè)圖片,以txt格式輸出圖片對(duì)應(yīng)的字符畫(huà),如圖所示:
以下是Python代碼:
# coding:utf-8 # 為一張圖片生成對(duì)應(yīng)的字符集圖片 from PIL import Image import argparse # 命令行輸入?yún)?shù)處理 parser = argparse.ArgumentParser() parser.add_argument('file') # 輸入文件 parser.add_argument('-o', '--output') # 輸出文件 parser.add_argument('--width', type=int, default=80) # 輸出字符畫(huà)寬 parser.add_argument('--height', type=int, default=80) # 輸出字符畫(huà)高 # 獲取參數(shù) args = parser.parse_args() IMG = args.file WIDTH = args.width HEIGHT = args.height OUTPUT = args.output ascii_char = list("$@B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/\|()1{}[]?-_+~<>i!lI;:,\"^`'. ") # 將256灰度映射到70個(gè)字符上 def get_char(r, b, g, alpha=256): if alpha == 0: return ' ' length = len(ascii_char) gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b) unit = (256.0 + 1)/length return ascii_char[int(gray/unit)] if __name__ == '__main__': im = Image.open(IMG) im = im.resize((WIDTH, HEIGHT), Image.NEAREST) txt = "" for i in range(HEIGHT): for j in range(WIDTH): txt += get_char(*im.getpixel((j, i))) txt += '\n' print txt # 字符畫(huà)輸出到文件 if OUTPUT: with open(OUTPUT,'w') as f: f.write(txt) else: with open("output.txt", 'w') as f: f.write(txt)
在輸出文件中得到如下字符集:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 如何利用python實(shí)現(xiàn)圖片轉(zhuǎn)化字符畫(huà)
- Python簡(jiǎn)單實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà)的實(shí)例項(xiàng)目
- python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà)的完整代碼
- Python 實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà)的示例(靜態(tài)圖片,gif皆可)
- Python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà)的代碼實(shí)例
- python Opencv將圖片轉(zhuǎn)為字符畫(huà)
- Python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà)的示例
- Python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà)的示例代碼
- 利用Python?實(shí)現(xiàn)圖片轉(zhuǎn)字符畫(huà)
相關(guān)文章
class類在python中獲取金融數(shù)據(jù)的實(shí)例方法
在本篇文章里小編給大家整理了關(guān)于class類怎樣在python中獲取金融數(shù)據(jù)的相關(guān)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2020-12-12用Python進(jìn)行簡(jiǎn)單圖像識(shí)別(驗(yàn)證碼)
這篇文章主要為大家詳細(xì)介紹了用Python進(jìn)行簡(jiǎn)單圖像識(shí)別驗(yàn)證碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01python遞歸實(shí)現(xiàn)鏈表快速倒轉(zhuǎn)
這篇文章主要為大家詳細(xì)介紹了python遞歸實(shí)現(xiàn)鏈表快速倒轉(zhuǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-05-05Python利用lxml庫(kù)實(shí)現(xiàn)XML高級(jí)處理詳解
在Python的世界中,lxml是處理XML和HTML的一款強(qiáng)大且易用的庫(kù),本文主要介紹了如何解析、創(chuàng)建、修改XML文檔,如何使用XPath查詢,以及如何解析大型XML文檔,需要的可以參考下2023-08-08PyQt5實(shí)現(xiàn)下載進(jìn)度條效果
這篇文章主要為大家詳細(xì)介紹了PyQt5實(shí)現(xiàn)下載進(jìn)度條效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04python實(shí)現(xiàn)摳圖給證件照換背景源碼
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)摳圖給證件照換背景源碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08Python腳本實(shí)現(xiàn)隨機(jī)數(shù)據(jù)生成自由詳解
這篇文章主要為大家詳細(xì)介紹了Python如何通過(guò)腳本實(shí)現(xiàn)隨機(jī)數(shù)據(jù)生成自由,文中的示例代碼講解詳細(xì),感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧2023-12-12