资讯专栏INFORMATION COLUMN

如何运用python完成图片转化字符画

89542767 / 252人阅读

  本文关键阐述了如何运用python完成图片转化字符画,文章内容紧扣主题进行详尽的基本介绍,具有很强的实用价值,必须的朋友可以学习一下


  序言:


  字符画:字符画是一连串标识符的搭配,也可以把标识符看作较为大块清晰度,一个字节能主要表现一个颜色,标识符的类型越大,能够表现得色调也就越多,照片还会更有层次感。


  假如他们想要手工制作制作出字符画,必须要有过硬的美术基础知识,次之还需要耗费大量时间和精力。但我们可以应用Python,只需两行编码,就可以将一张照片轻而易举的转化成1个字符画。


  案例1


  设计效果图:

01.png

02.png

  基础理论非常简单,便是对图片实际操作,这儿需要使用PIL的python包,里有非常好用的数字图像处理作用。


  先打开图,把图象修改尺寸:


  img=Image.open(picPath)
  img=img.resize((picW,picH))


  随后载入灰度级,然后把灰度级和标识符相匹配下去就可以了。


  fromPILimportImage
  lstChars=list("$B%8&WM#*oahkbdpqwmZO0QLaCJUYXzczjhdhsdavunxrjft/|()1{}[]?-_+~<>i!lI;:,"^`'.")
  defoneChars(r,g,b,alpha=256):
  globallstChars
  length=len(lstChars)
  gray=int(0.2126*r+0.7152*g+0.722*b)
  index=length*gray
  returnlstChars[index]
  picPath="C:UsersAdministratorDesktopaaaaaaa.png"
  picH=40
  picW=80
  img=Image.open(picPath)
  img=img.resize((picW,picH))
  txt=""
  foryinrange(picH):
  forxinrange(picW):
  txt+=oneChars(img.getpixel((x,y)))
  txt+='
  '
  printtxt

  案例2


  以下是源代码:


  #-*-coding=utf-8-*-
  fromPILimportImage
  IMG='IMG.jpg'#设置图片文档
  WIDTH=150#设置字符画的宽
  HEIGHT=80#设置字符画的高
  OUTPUT='T.txt'#设置存放字符画的文本文件
  ascii_char=list("$B%8&WM#*oahkbdpqwmZO0QLCJUYXzcvunxrjft/|()1{}[]?-_+~<>i!lI;:,"^`'.")#设置显示的字符集
  #将256灰度映射到70个字符上
  defget_char(r,g,b,alpha=256):
  #alpha为透明度
  #判断alpha值,为0表示全透明
  ifalpha==0:
  return''
  #获取字符集的长度,这儿为70
  length=len(ascii_char)
  #将RGB值转为灰度级gray,灰度级范围为0-255
  gray=int(0.2126*r+0.7152*g+0.0722*b)
  #灰度级范围为0-255,而字符集只有70
  #需要进行如下处理才能将灰度级映射到指定的标识符上
  #防止当灰度级为255时,输出的第70个字符超出列表索引,所以需要将(255+1)
  unit=(255.0+1)/length
  #返回灰度级对应的标识符
  returnascii_char[int(gray/unit)]
  if__name__=='__main__':
  #打开并调整图片的宽和高
  im=Image.open(IMG)
  im=im.resize((WIDTH,HEIGHT),Image.NEAREST)
  #初始化输出的字符串
  txt=""
  #遍历图片中的每一行
  foriinrange(HEIGHT):
  #遍历该行中的每一列
  forjinrange(WIDTH):
  #将(j,i)坐标的RGB清晰度转为标识符后添加到txt字符串
  txt+=get_char(*im.getpixel((j,i)))
  #遍历完一行后需要增加换行符
  txt+='
  '
  #输出到屏幕
  print(txt)
  withopen(OUTPUT,'w')asf:
  f.write(txt)

  同时黏贴就可以,只需在文件夹中导进1张图片重命名为IMG.jpg。运作最后会形成1个名叫T.txt的文档。


  原照:

03.png

  生成文件图

04.png

  综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/130257.html

相关文章

  • 运用Python实现图片字符

      本文关键阐述了运用Python实现图片转字符画,要把图片转字符画,必须要先界定1个字段名,用于和灰度级做投射,将照片每一个象素的RGB值转化成1个灰度级,把它相对应的标识符导出就得到了字符画  序言  相信大家在网上常常看到有些人展现出各种各样字符画,对于这些色彩斑斓的全球而言,我们平时看到的就是某些超清的彩色图片,有时候再来一个粗糙黑白字符画,还是比较缓解疲劳的。喜爱不要忘记个人收藏、关心、...

    89542767 评论0 收藏0
  • python 图片在线转字符预览

    摘要:文章链接关于图片转字符画,相信大家都不陌生,经常出现在个超有趣的项目中。今天我也来实践这个有趣的项目,更进一步的是把这个功能做成一个在线的网站,直接上传图片生成字符画,在线预览可以让更多的人来体验。至此,生成字符画的脚本完成了。 文章链接:https://mp.weixin.qq.com/s/yiFOmljhyalE8ssAgwo6Jw 关于python图片转字符画,相信大家都不陌生...

    CarterLi 评论0 收藏0
  • 基于 canvas 将图片转化字符

    摘要:字符画大家一定非常熟悉了,那么如何把一张现有的图片转成字符画呢让这个可能变成了现实,通过,可以很轻松实现这个功能。我们只能根据图片宽高,来定义一个间隔,横向间隔,纵向间隔取一次像素,这样可以保证生成的字符画大小和原图保持一致。 showImg(http://segmentfault.com/img/bVbtCk); 猛点 这里 看高清妹子图。 字符画大家一定非常熟悉了,那么如何把一...

    levinit 评论0 收藏0
  • 图解——PyQt4从入门到运用

    摘要:将程序包装在界面里,可以将输入通过多种途径如文本框弹出路径选择等输入到程序里。将输出通过文本框显示出来将执行信息如如报错信息运行进度通过文本框或进度条显示出来文章安排先介绍安装和配合的使用。 作为一个程序的开发者,我们仅仅需要在相应路径通过命令行就可执行那个程序。但是,不懂行的人不理解这个黑框框的东西,陌生领域任何人都没有安全感,所以他们是拒绝接受一个项目仅仅只是通过一个黑框框来执行的...

    史占广 评论0 收藏0
  • python sklearn:教你如何出决策书,并保存为PDF的实现过程

      pythonsklearn:教你如何画出决策书,并保存为PDF的实现过程   这篇文章主要介绍了pythonsklearn画出决策树并保存为PDF的实现过程,这篇文章具有很高的参考价值,希望各位读者可以认真仔细的阅读。   利用sklearn画出决策树并保存为PDF   下载Graphviz   进入官网下载并安装:   https://graphviz.gitlab.io/_pages/Do...

    89542767 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<