python将图片转化成字符图片,python实现图片转文字
本文主要介绍如何使用python实现图片转换人物绘画。文章围绕主题,详细介绍了内容,具有一定的参考价值。有需要的朋友可以参考一下。
前言:实施例1实施例2
目录
字符画:人物画是一系列人物的组合。我们可以把字符看成更大的像素,一个字符可以表达一种颜色。人物种类越多,可以表现的色彩就越多,画面也会更有层次感。
想要手绘人物画,首先要有扎实的美术功底,然后要花费大量的时间和精力。但是我们可以用Python,只需要几行代码就可以轻松的把一张图片变成人物画。
前言:
效果图:
理论很简单,就是图片的操作。这里需要用到PIL的python包,它有非常好的图像处理功能。
先打开图片,把图像调整大小:
img=Image.open(picPath)
img=img.resize((picW,picH))
然后读取灰度值,再将灰度值与字符进行匹配。
从PIL进口图片
lst chars=list( $ @ B % 8WM # * oahkbdpqwmzo 0 qlacjuyxzczjhdhsdavunxrjft/\ ()1 { }[]?-_ ~我!李;\^`.)
def oneChars(r,g,b,alpha=256):
全局lstChars
length=len(lstChars)
gray=int(0.2126 * r 0.7152 * g 0.722 * b)
索引=长度*灰度
返回lstChars[index]
picPath= c : \ Users \ Administrator \ Desktop \ \ aaaaaa \ \ aa . png
picH=40
picW=80
img=Image.open(picPath)
img=img.resize((picW,picH))
txt=
对于范围内的y(picH):
对于范围内的x(picW):
txt=oneChars(img.getpixel((x,y)))
txt=\n
打印文本
实例1
下面是源码:
# -*-编码=utf-8 -*-
从PIL进口图片
IMG=IMG.jpg #设置图片文件
WIDTH=150 #设置人物绘画的宽度。
HEIGHT=80 #设置人物画的高度。
OUTPUT=T.txt #设置文本文件存储人物画。
ascii _ char=list( $ @ B % 8WM # * oahkbdpqwmzo 0 qlcjuyxzcvunxrjft/\ ()1 { }[]?-_ ~我!李;3360, \.)#设置显示的字符集
#将256灰度映射到70个字符
def get_char(r,g,b,alpha=256):
# alpha是透明度。
#判断alpha值,0表示完全透明。
如果==0:
返回“”
#获取字符集的长度,这里是70
length=len(ascii_char)
#将RGB值转换为灰度值,灰度值范围从0到255
gray=int(0.2126 * r 0.7152 * g 0.0722 * b)
#灰度值的范围是0-255,而字符集只有70
#将灰度值映射到指定字符需要以下处理。
#为了防止灰度值为255时输出的第70个字符超过列表索引,所以需要设置(255 1)
单位=(255.0 1) /长度
#返回对应于灰度值的字符。
return ascii _ char[int(gray/unit)]
if __name__==__main__:
#打开并调整图片的宽度和高度
im=Image.open(IMG)
im=im.resize((宽度,高度),图像。最近的)
#初始化输出字符串
txt=
#遍历图片中的每一行
对于在范围(高度):的I
#遍历该行中的每一列
对于范围(宽度):内的j
#将(j,I)坐标的RGB像素转换为字符,并添加到txt字符串中。
txt=get_char(*im.getpixel((j,I)))
#遍历一行后,需要添加一个换行符
txt=\n
#输出到屏幕
打印(文本)
开(输出,“w”)为f:
f .写(txt)
直接粘贴,只需导入一张图片到文件夹中,重命名为IMG.jpg。结果将是一个名为T.txt的文件
原图:
生成文件图:
关于如何用python实现图像转换人物绘画的这篇文章到此为止。更多关于python人物画图的信息,请搜索热门IT软件开发工作室之前的文章或者继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。