成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫 > Python簡(jiǎn)單實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的實(shí)例項(xiàng)目

Python簡(jiǎn)單實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的實(shí)例項(xiàng)目

熱門標(biāo)簽:地圖制圖標(biāo)注位置改變是移位嗎 上海機(jī)器人外呼系統(tǒng)哪家好 315電話機(jī)器人廣告 浙江電銷卡外呼系統(tǒng)好用嗎 地圖標(biāo)注微信發(fā)送位置不顯示 地圖標(biāo)注的意義點(diǎn) 蓋州市地圖標(biāo)注 房產(chǎn)電銷外呼系統(tǒng) 南京銷售外呼系統(tǒng)軟件

1. 原理

利用 PIL 庫來獲取圖片并修改大小,
利用灰度值轉(zhuǎn)換公式把每一個(gè)像素的 RGB 值轉(zhuǎn)為灰度值

gray = int(0.2126*r+0.7152*g+0.0722*b)

再從字符集里獲取對(duì)應(yīng)的字符

asciis = list('M%$@#WNBRwm8S5A4E3KXFPH69nsxeazgpqbdoctfhkyvuGZYVTUCI2QOD0L7Jjl1ri!^{}[]()/|;:*>_~-,. ')

最后將字符連接起來并保存就完成了

2. 開始制作

2.1 導(dǎo)入所需的庫

在這個(gè)工程中,我們需要的第三方庫是 PIL
但我們不用 pip install PIL 來安裝它,而是使用 pip install pillow

pip install pillow

導(dǎo)入庫
在導(dǎo)入 PIL 庫時(shí),不能用 import pillow,應(yīng)使用 import PIL

from PIL import Image as Image

2.2 獲取圖片路徑和選項(xiàng)

inputfile = input('inputfile:')
outputfile = input('outputfile:')
distance = {'y':' ','':' ','n':''}
distance = distance[input('distance?(Y/n):')]
re = input("resize?:")

字母占用的位置是矩形的,因此生成出來的字符畫會(huì)被“擠壓”。我們可以在字母與字母之間添加空格來防止這種情況的發(fā)生。
如果圖片太大了,會(huì)導(dǎo)致耗費(fèi)時(shí)間過長(zhǎng)、亂碼等問題。我們應(yīng)該對(duì)圖片進(jìn)行必要的縮放。在詢問“resize?”時(shí),可以設(shè)置以下幾種回答:

回答方式 作用
“”,啥也不輸入 不縮放
“100”,邊長(zhǎng) 輸入單個(gè)數(shù)字時(shí),會(huì)按比例縮放為較長(zhǎng)邊為此長(zhǎng)度的矩形
“100,200”,寬和高 縮放為指定寬高的矩形

2.3 圖片獲取

使用 PILopen 函數(shù)打開圖片

image = Image.open(inputfile)

注意:這里的 open 函數(shù)不要和 python 內(nèi)置函數(shù) open 混淆

2.4 調(diào)整圖片大小

獲取圖片大小

w, h = image.size

獲取變量 re 中存儲(chǔ)的大小信息,并用函數(shù) split 分割

nwh = re.split(',')
for i in range(len(nwh)):
    nwh[i] = int(nwh[i])

調(diào)整圖片大小

if len(nwh) == 1:
    #如果項(xiàng)數(shù)為1,表示用戶只輸入了一個(gè)數(shù)字。即按比例縮放為較長(zhǎng)邊為此長(zhǎng)度的矩形
    ww = int(nwh[0] / max(w,h) * w) #max函數(shù)獲取較大值
    hh = int(nwh[0] / max(w,h) * h)
    image = image.resize((ww,hh),Image.ANTIALIAS) 
    #改變圖片大小
    #第一個(gè)參數(shù)放入一個(gè)元組,指定寬高
    #第二個(gè)參數(shù) Image.ANTIALIAS 表示獲取高質(zhì)量圖片
else:
    #項(xiàng)數(shù)不為1,縮放為指定寬高的矩形
    image = image.resize((nwh[0],nwh[1]),Image.ANTIALIAS)

2.5 轉(zhuǎn)換字符

指定轉(zhuǎn)換的字符集

asciis = list('M%$@#WNBRwm8S5A4E3KXFPH69nsxeazgpqbdoctfhkyvuGZYVTUCI2QOD0L7Jjl1ri!^{}[]()/|;:*>_~-,. ')
#list函數(shù)將字符串轉(zhuǎn)換為列表

定義轉(zhuǎn)換字符的函數(shù)

def getasc(r,g,b,t=100): #t為透明度
    if t == 0:
        return(' ') #如果是透明的,則直接返回空值
    else:
        asc = ''
        gray = int(0.2126*r+0.7152*g+0.0722*b) #轉(zhuǎn)灰度值
        asc = asciis[int(len(asciis)/256*(gray))] #獲取字符
        return(asc)

開始轉(zhuǎn)換字符

for i in range(h):
    for o in range(w): #按行讀取每一個(gè)像素的RGB值
        p = image.getpixel((o,i))
        g = getasc(*p) # * 將參數(shù)列表轉(zhuǎn)換為多個(gè)項(xiàng)
        txt = txt + g + distance #連接字符
    txt = txt + '\n' #換行

函數(shù) getpixel 獲取指定位置的 RGB 值,它的第一個(gè)參數(shù)為元組,傳入像素位置 (x,y),如果圖片是 JPG 格式的,它會(huì)返回含三項(xiàng)的列表 [r,g,b],如果圖片是 PNG 格式的,它會(huì)返回含四項(xiàng)的列表 [r,g,b,t],t 是透明度

2.6 保存文本

使用 python 內(nèi)置函數(shù) open 保存文件

with open(outputfile,'w') as f: # 'w' 表示寫入
    f.write(txt)

2.7 效果

================== RESTART: D:\Python38-32\Files\ji2a\ji2a.py ==================
=====image to ascii=====
inputfile:
dora.png
outputfile:
dora.txt
distance?(Y/n):
y
resize?(needn't:'', square:side length, restangle:width,height):
100

Opening 'dora.png'...
Getting...
Saving...
Seccessfully

原圖:


結(jié)果:

3. 完整代碼

from PIL import Image as Image
  
asciis = list('M%$@#WNBRwm8S5A4E3KXFPH69nsxeazgpqbdoctfhkyvuGZYVTUCI2QOD0L7Jjl1ri!^{}[]()/|;:*>_~-,. ')
#gray = int(0.2126*r+0.7152*g+0.0722*b)

def main():
    global asciis

    print('=====image to ascii=====')
    
    inputfile, outputfile, distance, re = getargs()

    image = openfile(inputfile)

    image = resize(image,re)
    w, h = image.size

    txt = gettxt(image,w,h,distance)

    savefile(outputfile,txt)

    print('Seccessfully')

def getargs():
    inputfile = input('inputfile:\n')
    outputfile = input('outputfile:\n')
    distance = {'':' ','y':' ','n':''}
    distance = distance[input('distance?(Y/n):\n')]
    re = input("resize?(needn't:'', square:side length, restangle:width,height):\n")

    return(inputfile,outputfile,distance,re)

def openfile(inputfile):
    print("\nOpening '"+inputfile+"'...")
    image = Image.open(inputfile)

    return(image)

def resize(image,re):
    if re != '':
        print('Resizing...')
        nwh = re.split(',')
        for i in range(len(nwh)):nwh[i]=int(nwh[i])
        w, h = image.size
        
        if len(nwh) == 1:
            ww = int(nwh[0] / max(w,h) * w)
            hh = int(nwh[0] / max(w,h) * h)
            image = image.resize((ww,hh),Image.ANTIALIAS)
        else:
            image = image.resize((nwh[0],nwh[1]),Image.ANTIALIAS)
        
    return(image)

def gettxt(image,w,h,distance):    
    txt = ''
    print('Getting...')

    for i in range(h):
        for o in range(w):
            p = image.getpixel((o,i))
            txt = txt + getasc(*p) + distance
        txt = txt + '\n'

    return(txt)
    
    
def getasc(r,g,b,t=100):
    if t == 0:
        return(' ')
    else:
        asc = ''
        gray = int(0.2126*r+0.7152*g+0.0722*b)
        asc = asciis[int(len(asciis)/256*(gray))]
        return(asc)

def savefile(outputfile,txt):
    print('Saving...')
    
    with open(outputfile,'w') as f:
        f.write(txt)

    return()

if __name__ == '__main__':
    main()

此代碼在 Python3.8 下調(diào)試通過

4. 后記

我們的圖片轉(zhuǎn)字符畫程序完成了!

要想將它打造成一個(gè)真正的命令行工具,可以加入命令行參數(shù)功能,
利用 sys 模塊的 argv 函數(shù)獲取命令行參數(shù),
利用 getopt 模塊的 getop 函數(shù)解析命令行參數(shù)。

到此這篇關(guān)于Python簡(jiǎn)單實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的實(shí)例項(xiàng)目的文章就介紹到這了,更多相關(guān)Python 圖片轉(zhuǎn)字符畫內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的完整代碼
  • python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫
  • Python 實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的示例(靜態(tài)圖片,gif皆可)
  • 基于python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫代碼實(shí)例
  • Python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的代碼實(shí)例
  • 一百行python代碼將圖片轉(zhuǎn)成字符畫
  • Python將圖片轉(zhuǎn)換為字符畫的方法
  • python Opencv將圖片轉(zhuǎn)為字符畫
  • Python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的示例
  • Python實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的示例代碼
  • 從零學(xué)python系列之教你如何根據(jù)圖片生成字符畫

標(biāo)簽:金華 貴州 赤峰 陽泉 日照 雙鴨山 臨汾 克拉瑪依

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python簡(jiǎn)單實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的實(shí)例項(xiàng)目》,本文關(guān)鍵詞  Python,簡(jiǎn)單,實(shí)現(xiàn),圖片,轉(zhuǎn),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python簡(jiǎn)單實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的實(shí)例項(xiàng)目》相關(guān)的同類信息!
  • 本頁收集關(guān)于Python簡(jiǎn)單實(shí)現(xiàn)圖片轉(zhuǎn)字符畫的實(shí)例項(xiàng)目的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    中文字幕精品—区二区| 91精品二区| 久久只有这里有精品| 欧美日韩国产综合视频| 欧美日韩国产色| 久久综合给合久久狠狠狠97色69| 视频一区视频二区视频三区视频四区国产| 只有这里有精品| 婷婷亚洲婷婷综合色香五月| 国产一级免费在线观看| 国产伦精品一区二区三区免费| 色男人天堂综合再现| 一区二区视频网| 国产精品黄色影片导航在线观看| 亚洲日本视频在线| 911精品产国品一二三产区| 亚洲精品大全| 中文字幕av一区中文字幕天堂| 欧美熟妇一区二区| mm131丰满少妇人体欣赏图| 日韩欧美99| 麻豆传媒网站在线观看| 国产麻豆9l精品三级站| 天天操夜夜摸| 男人在线资源站| 精品一区二区三区免费视频| **日韩最新| 高清av一区二区三区| 强开小嫩苞一区二区三区视频| 国产日韩欧美综合在线| 超碰成人在线播放| 久久精品欧美| 午夜精品久久久久久久99热浪潮| 福利在线导航136| 天天干,夜夜爽| 久久久久久网址| 自慰无码一区二区三区| 成人av地址| 欧美v日韩v国产v| 欧洲亚洲女同hd| 巨胸喷奶水www久久久免费动漫| 国产一区二区激情| 人人妻人人澡人人爽欧美一区双| 人妻av一区二区三区| 天天爱天天做天天操| 色涩成人影视在线播放| 欧洲vodafonewi精品| 丁香另类激情小说| 国产一区二区中文字幕免费看| 日韩国产在线看| 久久无码av三级| 欧洲精品在线播放| 成年人看的羞羞网站| 亚洲欧洲日韩av| 川上优av一区二区线观看| 橘梨纱av一区二区三区在线观看| 嫩草影院发布页| 91久久精品国产91久久性色tv| 亚洲午夜18毛片在线看| 狠狠狠色丁香婷婷综合激情| 91在线网站视频| 欧洲一区二区视频| 最新版天堂资源在线| 国产主播在线播放| 成人中文在线| 国产精品丝袜一区二区| 久久亚洲二区| av免费在线播放网站| 在线视频亚洲色图| 国产自产视频一区二区三区| 污污网站在线| 久久久久久一级片| 一本本久综合久久爱| 国产伦精品一区二区三区在线播放| 久久国产剧场电影| 中文字幕成在线观看| 亚洲国产高清福利视频| 青青青国产在线| 美女视频第一区二区三区免费观看网站| 国一区二区在线观看| 国产一区 在线播放| 欧美 日韩 国产在线观看| 国产最新在线| 国产精品成人v| 国产精品边吃奶边做爽| 99色在线播放| 日韩av片在线播放| 狠狠爱综合网| 久久婷婷一区二区三区| 污污视频在线免费看| 亚洲国产精品久久久男人的天堂| 91精品亚洲一区在线观看| 欧洲亚洲精品久久久久| 操欧美女人视频| 一区二区三区在线电影| 色综合色狠狠综合色| 久久久久高清| 丰满少妇一区二区| 2020日本不卡一区二区视频| 日韩av片在线免费观看| 日韩三级在线| 国产精品久久亚洲7777| 国内精品视频在线| 欧美人与牲动交xxxxbbbb| 精品国产欧美日韩| 亚洲精选一区二区三区| 天天摸天天干| 一道本成人在线| av黄在线观看| 国产精品女主播| 精品91一区二区三区| 国产精品1024久久| 欧美一级久久久| 久久综合伊人77777麻豆最新章节| 久久一区二区三区电影| 欧美日韩久久一区二区| 成人性生交大片免费看小说| 中文字幕在线直播| 久久福利网址导航| 香蕉视频一区| 在线天堂新版最新版在线8| 国产精品久久久久久久久免费樱桃| 大白屁股一区二区视频| 色综合视频一区二区三区高清| 免费在线看黄色片| 日韩福利视频在线观看| 色135综合网| 无码人妻丰满熟妇区五十路| 国产1区2区3区| 一级毛片精品毛片| 国产又粗又猛又色| 男人的天堂av社区在线| 高潮无码精品色欲av午夜福利| 成人精品一区二区三区| 国产视频在线观看一区| 国产欧美在线视频| 日韩亚洲欧美一区| 男生女生差差差的视频在线观看| 国产在线观看免费视频软件| av网站手机在线观看| 电影av一区| 日本乱码高清不卡字幕| 成人乱码一区二区三区| 最新中文字幕在线| 亚洲一区二区高清视频| 亚洲成av人片乱码色午夜| 国产精品免费人成网站| 欧美国产精品va在线观看| 色乱码一区二区三区在线| 久久av网址| 成人精品视频一区二区| 中文字幕佐山爱一区二区免费| 国产乱码一区二区三区| 无套白嫩进入乌克兰美女| 中文字幕网av| 亚洲美女av黄| 99久久精品国产网站| 中文字幕在线播放av| 日本三级在线播放完整版| 国产aⅴ夜夜欢一区二区三区| 国产手机视频在线| 欧美人与性动交a欧美精品| 欧美色视频一区二区三区在线观看| 亚洲人成精品久久久久| 国内老司机av在线| 国产精品1luya在线播放| 色婷婷久久久亚洲一区二区三区| 欧美韩国日本在线观看| 欧美一区二区麻豆红桃视频| 91av在线免费播放| 欧美丰满老妇厨房牲生活| 久久精品一区二区三区不卡免费视频| 欧美不卡视频一区| 色猫咪免费人成网站在线观看| 6699嫩草久久久精品影院| 日本在线中文电影| 毛片av在线| 丝袜诱惑亚洲看片| 久草在线免费资源| 欧美日韩国产精品自在自线| 欧美在线影院在线视频| 香蕉一区二区| 9i精品福利一区二区三区| 小泽玛利亚一区二区免费| 午夜精品蜜臀一区二区三区免费| 亚洲欧美制服另类日韩| 亚洲男女视频在线观看| 26uuu亚洲电影在线观看| 美女毛片一区二区三区四区最新中文字幕亚洲| 亚洲精品中文字幕在线播放| 四虎影院影音| 在线日韩精品视频| 在线观看美女网站大全免费| h视频免费在线| 国产久草在线| 一区二区三区资源| www.成人精品免费网站青椒| 亚洲精品久久久久avwww潮水| 欧美激情精品久久久久久久变态| 蜜桃视频第一区免费观看| 国产香蕉97碰碰久久人人| 日本道免费精品一区二区三区| 2018中文字幕第一页| 亚洲欧美日韩动漫| 成人性生交大片免费网站| 亚洲一区二区自偷自拍| 成人影院在线观看视频| 深夜福利免费在线观看| 欧美精品一区二区三| 午夜天堂在线视频| 九九热青青草| 成人中文视频| 丝袜足控免费网站xx网站| 在线免费观看av网| 国产一区二区女内射| 2021中文字幕一区亚洲| 91精品少妇一区二区三区蜜桃臀| 欧美aaa视频| 国产高清一区在线观看| 一本一道久久综合狠狠老| 久久人人97超碰国产公开结果| 黄色网页在线播放| 55av亚洲| 中文字幕欧美日韩在线不卡| 日韩大片一区二区| 国产h色视频在线观看| 国产女人精品视频| 亚洲国产一区二区视频| 国产精品无码在线| 米奇精品一区二区三区在线观看| 91精品国产美女浴室洗澡无遮挡| 4438x全国最大成人| 精品亚洲综合| 精品一区二区三区在线观看国产| 亚洲人成网站精品片在线观看| 三年片观看免费观看大全视频下载| 自慰无码一区二区三区| av午夜一区麻豆| 91免费精品国偷自产在线在线| 久久久久久穴| 亚洲第一区中文99精品| 99久久精品国产亚洲| 性欧美大战久久久久久久久| 成人精品亚洲人成在线| 在线观看免费高清视频97| 最近免费中文字幕大全免费第三页| 人人狠狠综合久久亚洲| 亚洲三级免费电影| 18av千部影片| 不卡的av中国片| 国产激情一区二区三区在线观看| 美女的胸无遮挡在线观看| 破处女黄色一级片| 九色在线视频观看| 久久视频这里有精品| 日韩手机在线| 欧美美女18p| 不用播放器成人网| 国产精品二区在线观看| 搞黄视频免费在线观看| 人妻精品一区二区三区| 国产在线视频一区| 91精品国产视频| 色综合天天爱| 国产毛片久久| 黄色成人在线免费观看| 粉嫩嫩av羞羞动漫久久久| 成人av在线不卡| 国产偷人视频免费| 欧美嫩在线观看| 影音先锋男士资源站| 亚洲天堂av电影| 日韩在线精品一区| 日韩一级片在线观看| 黄色电影免费在线观看| 亚洲欧洲日产国码无码久久99| 国产精品99| 国产精品一区专区欧美日韩| 人人九九精品| 人人香蕉久久| 国产精品av在线| 古装做爰无遮挡三级聊斋艳谭| 日韩在线电影一区| 理论片影音先锋| 免费在线观看日韩欧美| 日韩精品在线私人| 天天碰免费视频| 精品手机在线视频| 日本美女一区二区三区视频| 少妇高潮喷水在线观看| www.成人精品免费网站青椒| 天堂av在线一区| 人妻大战黑人白浆狂泄| 国产精品久久二区| 三级视频在线| 成人影院在线免费观看| 国产东北露脸精品视频| 日韩午夜视频在线观看| 欧美激情亚洲综合| 日韩欧美激情一区| 蜜桃狠狠色伊人亚洲综合网站| 91网在线看| 欧美日韩亚洲一区| 欧美激情第四页| 亚洲精品在线免费| 日本精品一区在线观看| 黄色影片网站| 国产精品99久久久久久大便| 午夜不卡影院| 国产精品社区| 免费看黄色一级大片| 美女精品国产| 欧美日韩亚洲视频一区| 91国内揄拍国内精品对白| 国产精品久久久久9999| 成人禁用看黄a在线| 特级西西444www高清大视频| 99热这里只有精品在线| 欧美激情国产精品| 在线观看免费高清视频| 久久午夜鲁丝片午夜精品| 日韩在线观看免费全| 亚洲免费观看高清在线观看| 欧美激情亚洲国产| 一级少妇精品久久久久久久| 波多野结衣亚洲一区| 中文在线观看免费视频| 成人盗摄视频|