日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

二十行python代码实现图片转字符

發布時間:2023/11/21 综合教程 39 生活家
生活随笔 收集整理的這篇文章主要介紹了 二十行python代码实现图片转字符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

要達到的效果如下圖所示

或者這樣


源碼如下:

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庫對圖片進行處理,將每個像素映射到70個字符上,再一個個像素輸出即可

代碼注釋:

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)]

版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
將彩色圖片的RBG數值轉化為灰度值,并根據字符的個數計算出每個字符對應幾個灰度值,因為灰度值為0~255但只有70個字符符號,大約每個字符對應三個灰度值

img = img.resize((width,height),Image.NEAREST)

對圖片重新設置大小,第二個參數可以設置圖片的質量,有四個選項.NEAREST,BILINEAR,BICUBIC,LANCZOS,默認為第一個,第四個圖像質量最高

txt += get_char(*img.getpixel((j,i)))

img.getpixel(j,i)返回的是一個三元組元素,加*是為了將其分為三個變量值
---------------------

作者:NesCafee
原文:https://blog.csdn.net/dpengwang/article/details/79076188

總結

以上是生活随笔為你收集整理的二十行python代码实现图片转字符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。