资讯专栏INFORMATION COLUMN

运用Python实现图片转字符画

89542767 / 479人阅读

  本文关键阐述了运用Python实现图片转字符画,要把图片转字符画,必须要先界定1个字段名,用于和灰度级做投射,将照片每一个象素的RGB值转化成1个灰度级,把它相对应的标识符导出就得到了字符画


  序言


  相信大家在网上常常看到有些人展现出各种各样字符画,对于这些色彩斑斓的全球而言,我们平时看到的就是某些超清的彩色图片,有时候再来一个粗糙黑白字符画,还是比较缓解疲劳的。喜爱不要忘记个人收藏、关心、关注点赞。


  字符画的基本原理


  这类字符画的基本原理也非常简单,也可以把每一个标识符看作是一个很大的象素,一个字节能够意味着一个颜色,标识符各种越大,可展现的色调越大,字符画就更有层次感。


  灰度级和RGB


  灰度级就是指黑白图像中心点颜色深度,它范畴是0-255,乳白色为255,灰黑色为0,深颜色处于二者之间。


  RGB是三原色三色调,通过各种的累加可以得到深颜色。


  要把图片转字符画,必须要先界定1个字段名,用于和灰度级做投射,将照片每一个象素的RGB值转化成1个灰度级,把它相对应的标识符导出就得到了字符画。


  RGB转灰度级,有一个变换学公式计算:


  gray=(2126*r+7152*g+722*b)/10000


  编码实战演练


  我随便选取了一张照片:

01.png

  我的目标是转化成下边那样:

02.png

  依据之上变换工作原理,大家直接用编码:


  fromPILimportImage
  char=list('M3NB6Q#OC?7>!:–;.')
  defget_char(r,g,b,alpha=256):
  ifalpha==0:
  return''
  grey=(2126*r+7152*g+722*b)/10000
  char_idx=int((grey/(alpha+1.0))*len(char))
  returnchar[char_idx]
  defwrite_file(out_file_name,content):
  withopen(out_file_name,'w')asf:
  f.write(content)
  defmain(file_name="input.jpg",width=100,height=80,out_file_name='output.txt'):
  text=''
  im=Image.open(file_name)
  im=im.resize((width,height),Image.NEAREST)
  foriinrange(height):
  forjinrange(width):
  text+=get_char(*im.getpixel((j,i)))
  text+='
  '
  print(text)
  write_file(out_file_name,text)
  if__name__=='__main__':
  main('dance.png')

  程序流程构思:


  界定1个二维数组,这一二维数组里边的标识符能够随便写。


  解析图片,将照片里边的每一个像素数分析成RGB值。


  依据大家上边的公式计算,将每一个像素数转化成二维数组里边的一个字节。


  把所有像素数相对应的标识符拼凑下去,就完成变换。


  汇总


  图片转字符画,转化的设计原理构思还是很简单的,完成也并不复杂,你们可以出手试一试!


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

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

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

相关文章

  • python 图片在线字符预览

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

    CarterLi 评论0 收藏0
  • 如何运用python完成图片字符

      本文关键阐述了如何运用python完成图片转化字符画,文章内容紧扣主题进行详尽的基本介绍,具有很强的实用价值,必须的朋友可以学习一下  序言:  字符画:字符画是一连串标识符的搭配,也可以把标识符看作较为大块清晰度,一个字节能主要表现一个颜色,标识符的类型越大,能够表现得色调也就越多,照片还会更有层次感。  假如他们想要手工制作制作出字符画,必须要有过硬的美术基础知识,次之还需要耗费大量时间和...

    89542767 评论0 收藏0
  • 超不清视频播放器-用Python将视频字符

    摘要:一幅图像全部转成字符序列后,就可以直接在控制台输出了。读取视频使用了,并直接用它提供的方法转了灰度图,在之前的文章中也有过介绍,计算机视觉开发利器这一步比较重要,因为有的视频分辨率很高,直接一个像素转一个字符的话量太大,所以先缩小图片。 今天分享的这段代码,看起来没啥实际用处,而且有些反潮流,因为现如今大家看视频都追求更高分辨率的超清画质,而我们这个,是 一个超不清的视频播放器 : 在...

    DobbyKim 评论0 收藏0
  • 用纯前端的方式来实现图片字符

    摘要:最近花了几天时间,做了一个图片转字符画的工具,一开始想做成用服务器来生成图像的形式,但是后来发现可以不依赖服务器生成图片,顺便还能把项目托管到上,因此就把项目做成了纯前端的形式。 最近花了几天时间,做了一个图片转字符画的工具,一开始想做成用服务器来生成图像的形式,但是后来发现可以不依赖服务器生成图片,顺便还能把项目托管到 Github Pages 上,因此就把项目做成了纯前端的形式。 ...

    NikoManiac 评论0 收藏0

发表评论

0条评论

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