Golang实现文字转字符画

简单说下原理:使用文字创建位图,然后根据位图计算每个像素点的灰度,根据灰度使用不同的字符将所有像素拼接即可.
1.相关使用的包

  import ("github.com/golang/freetype""fmt""image""strconv"//"image/color""image/png""io/ioutil""log""os")

2.根据文字创建图像

  func createImage(textName string) {imgfile, _ := os.Create(textName+".png")defer imgfile.Close()//创建位图,坐标x,y,长宽x,yimg := image.NewNRGBA(image.Rect(0, 0, 100,40))/*// 画背景,这里可根据喜好画出背景颜色for y := 0; y < dy; y++ {for x := 0; x < dx; x++ {//设置某个点的颜色,依次是 RGBAimg.Set(x, y, color.RGBA{uint8(x), uint8(y), 0, 255})}}*///读字体数据fontBytes, err := ioutil.ReadFile("consola.TTF")if err != nil {log.Println(err)return}font, err := freetype.ParseFont(fontBytes)if err != nil {log.Println(err)return}c := freetype.NewContext()c.SetDPI(72)c.SetFont(font)c.SetFontSize(40)c.SetClip(img.Bounds())c.SetDst(img)c.SetSrc(image.White)//设置字体显示位置pt := freetype.Pt(5, 20+int(c.PointToFixed(40)>>8))_, err = c.DrawString(textName, pt)if err != nil {log.Println(err)return}//保存图像到文件err = png.Encode(imgfile, img)if err != nil {log.Fatal(err)}}

3.根据图像输出字符画

    func drawAscii(){//灰度替换字符base := "@#&$%*o!;."file1, _ := os.Open("TASS.png") //图像名称image1, _ := png.Decode(file1)bounds:=image1.Bounds()//获取图像的边界信息logo:=""//存储最终的字符画stringfor y:=0;y<bounds.Dy();y+=2{for x:=0;x<bounds.Dx();x++{pixel:=image1.At(x, y)//获取像素点r, g, b, _ := pixel.RGBA()//获取像素点的rgbr=r&0xFFg=g&0xFFb=b&0xFF//灰度计算gray := 0.299 * float64(r) + 0.578 * float64(g) + 0.114 * float64(b)temp:=fmt.Sprintf("%.0f",gray*float64(len(base)+1)/255)index,_:=strconv.Atoi(temp)//根据灰度索引字符并保存if index>=len(base) {logo+=" "}else{logo+=string(base[index])}}logo+="\r\n"}file1.Close()//输出字符画log.Printf("\033[31;1m%s , %d",logo,len(logo))}

4.效果

Golang实现文字转字符画相关推荐

  1. 图片,文字在线转为字符画

    图片转换字符画 http://www.makepic.net/Tool/Image2ascii.html 文字转换字符画 http://patorjk.com/software/taag http:/ ...

  2. 在线生成ascii字符画网站字符图案在线生成工具

    前情提示 有时候会看到Redis或者其他软件,安装完成后会在控制台输出好看的文字图案. 这里记录一下字符画生成工具,用于定制Spring boot应用的启动画面. http://patorjk.com ...

  3. 在线生成ascii字符画网站

    以下是我收集的一些在线生成ascii字符画的网站 根据文字生成字符画: http://patorjk.com/software/taag http://www.network-science.de/a ...

  4. 在线生成ascii字符画的网站

    在线生成ascii字符画的网站 根据文字生成字符画: http://patorjk.com/software/taag http://www.network-science.de/ascii/ 根据图 ...

  5. 【golang字符画】实现代码中打印好看的图案

    图片转字符画 图片转字符画 文字转成图片 代码实现功能描述 实现思路简述 代码整体实现 1.通过文件路径获取一个图片 2.根据图片的宽度,等比例缩放图片 3.将图片保存到文件中 4.实现图片转字符串 ...

  6. golang实现图片颜色反转、图片灰度、缩放、转为字符画

    看到网上很多通过字符形成的画,觉得很好玩,于是网上搜索了下原来叫字符画. 见百度百科:https://baike.baidu.com/item/%E5%AD%97%E7%AC%A6%E7%94%BB/ ...

  7. Linux控制台打开显示字符画,Linux 命令行字符画工具

    代码地址:https://github.com/pedroqin/Ascii_Signature 公众号: write_simple_demo,专注linux 介绍 此项目移植于网页版字符画生成器,最 ...

  8. python图像转字符画_python图像处理-字符画风格图片

    前言 字符画图片,顾名思义就是由一个个字符组成的图片,下面这张图片很容易帮助你理解,如果我们可以将字符排列好,让他看上去像一个物体的形状,那么最后再将它输出保存为一张图片就可以实现了. 下面的这些形状 ...

  9. 第14章 定制字符画(《Python趣味创意编程》教学视频)

    (图书介绍:童晶:<Python趣味创意编程>新书预告) 本章我们将实现定制字符画的效果,如图所示.首先对图片均匀采样.显示字符:然后对字符串的元素进行遍历,实现一段文字的替换显示:最后根 ...

最新文章

  1. 2022-2028年中国儿童医疗行业深度调研及投资前景预测报告
  2. Facebook更名“元宇宙”遭质疑,外媒提出三大现实问题
  3. 如何创建从ArcIMS到ArcSDE/Oracle的直接连接?
  4. Maven项目下update maven后Eclipse报错:java.lang.ClassNotFoundException: org.springfra
  5. 复星金服微服务_阿里巴巴财报:蚂蚁金服净利润59亿元,支付宝服务用户约12亿...
  6. linux系统下怎样压缩文件,Linux操作系统下常用压缩文件如何解压?
  7. 中国美丽乡村建设投融资及十四五发展规划分析报告2022-2028年版
  8. hdu-Calculation 2(欧拉函数)
  9. java中的分层概念_Java分层概念
  10. jsf标签p:ajax_JSF AJAX请求的会话超时处理
  11. 如何用vbs编写一个游戏_如何编写一个 SkyWalking 插件
  12. python解题软件哪个好用_几个好用的Python数据分析工具
  13. 【SpringCloud】Spring cloud Alibaba Sentinel 系统规则
  14. linux 查看系统信息命令
  15. 9个前端常用的数据可视化库
  16. 学习路线、站点推荐、工具软件、资源下载
  17. 2021最后一个月了,你找到带回家的那个她了吗?送你999朵玫瑰。
  18. conver(array)
  19. 两组回归系数差异检验_如何检验两个回归系数的差异性?我做调节分析。
  20. English语法_名词性从句 - what

热门文章

  1. 数据分析工具:使用tableau工具画深圳二手房参考价的统计图
  2. 安卓应用开发小程序!字节跳动+京东+360+网易面试题整理,聪明人已经收藏了!
  3. 《操作系统真象还原》第六章 ---- 开启c语言编写函数时代 首挑打印函数小试牛刀 费心讨力重回gcc降级 终尝多日调试之喜悦
  4. 未能加载文件或程序集“EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”
  5. 微软帝国踏上Windows7征途(图)
  6. 如何屏蔽博客园中的Google广告
  7. 笔记——零知识证明zkSNARK
  8. 中国女式西装行业发展前景预测及数据专项调研报告2022年版
  9. 北大集训2019垫底记
  10. 线控转向,包含设计说明书,carsim模型,MATLAB Simulink模型全套