二十行python代码实现图片转字符
生活随笔
收集整理的這篇文章主要介紹了
二十行python代码实现图片转字符
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
要達(dá)到的效果如下圖所示
或者這樣
源碼如下:
from PIL import Image
ascii_char =list("/\|()1{}$@B%8&WM#ZO0QLCJUYX*hkbdpqwmoahkbdpqwmzcvunxrjft[]?-_+~<>i!lI;:,\"^`'. ")
imgname = "D:/jzm.png"
output ="D:/a.txt"
width =60
height=35
def get_char(r,g,b,alpha= 256):
length = len(ascii_char)
gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
unitcount = (256.0+1)/length
return ascii_char[int(gray/unitcount)]
img = Image.open(imgname)
img = img.resize((width,height),Image.NEAREST)
txt = ""
for i in range(height):
for j in range(width):
txt += get_char(*img.getpixel((j,i)))
txt += '\n'
with open(output,'w') as f:
f.write(txt)
使用python的PIL庫對圖片進(jìn)行處理,將每個(gè)像素映射到70個(gè)字符上,再一個(gè)個(gè)像素輸出即可
代碼注釋:
def get_char(r,g,b,alpha= 256):
length = len(ascii_char)
gray = int(0.2126 * r + 0.7152 * g + 0.0722 * b)
unitcount = (256.0+1)/length
return ascii_char[int(gray/unitcount)]
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!
將彩色圖片的RBG數(shù)值轉(zhuǎn)化為灰度值,并根據(jù)字符的個(gè)數(shù)計(jì)算出每個(gè)字符對應(yīng)幾個(gè)灰度值,因?yàn)榛叶戎禐?~255但只有70個(gè)字符符號(hào),大約每個(gè)字符對應(yīng)三個(gè)灰度值
img = img.resize((width,height),Image.NEAREST)
對圖片重新設(shè)置大小,第二個(gè)參數(shù)可以設(shè)置圖片的質(zhì)量,有四個(gè)選項(xiàng).NEAREST,BILINEAR,BICUBIC,LANCZOS,默認(rèn)為第一個(gè),第四個(gè)圖像質(zhì)量最高
txt += get_char(*img.getpixel((j,i)))
img.getpixel(j,i)返回的是一個(gè)三元組元素,加*是為了將其分為三個(gè)變量值
---------------------
作者:NesCafee
原文:https://blog.csdn.net/dpengwang/article/details/79076188
總結(jié)
以上是生活随笔為你收集整理的二十行python代码实现图片转字符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《帝国时代终极版》秘籍代码及使用方法 帝
- 下一篇: 程序猿的必读书籍