Golang Go语言写了一个图片转字符画的小工具

发布于 1周前 作者 sinazl 来自 Go语言

看到一些群里发的字符画感觉挺有趣的,然后就想着自己做一个小工具将图片转为字符文本,刚好可以拿 go 来练手, 顺便熟悉下 go 的一些库,在做命令行版本后又做了一个网页版,同时编译打包为一个文件。

在线测试地址

GitHub, 提供了 windows、linux、osx 的可执行文件和源码,如果对图片处理或者代码有更好的建议,还请赐教。

使用方式:

命令行:

./bin/ascii_converter -image-path="./test.png"

获取参数帮助信息

./bin/ascii_converter -h -bg string The background of the ascii art image file.(Only useful when image-out i s true, red|gray|green|blue|black are available). (default “black”) -characters string The chars in the value will be used to generate ascii art. (default "M80 V1i:*|, ") -color string The color of the ascii font in image file.(Only useful when image-out is true, red|gray|green|blue|black are available). (default “gray”) -image-out If set to true, will also output the ascii art to an image file -image-out-path string If imageOut is true, add this option to print the picture to file. -image-path string The path of the picture file(jpg/png). -image-url string The url of the picture file(jpg/png). -ip string The address to bind. (default “127.0.0.1:8080”) -server Set true to enable web ui server -sub-height int The height of the piece of small rectangle (default 10) -sub-width int The width of the piece of small rectangle (default 10)

使用浏览器:

# 启动 http 服务
./bin/ascii_converter -server=true

启动 http 服务后通过浏览器访问 http://127.0.0.1:8080 可以通过 web 界面进行操作。

感觉用 go 来写一些小工具挺方便的,跨平台,而且静态资源文件可以通过 go-bindata 生成 go 源文件,可以和源码一起打包成一个可执行文件,直接一个文件就可以发布执行,不需要安装各种依赖,真爽!

放上一个转换后的例子:
image


Golang Go语言写了一个图片转字符画的小工具

更多关于Golang Go语言写了一个图片转字符画的小工具的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

16 回复

玩了一下,挺好玩的

更多关于Golang Go语言写了一个图片转字符画的小工具的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


作大死.

你这是要搞事情啊( ﹁ ﹁ ) ~→

#6 真正的粉丝,就算是。。。

一颗赛艇

还是双马尾的…

写的好棒~~计算 grp 这块我稍微测试了一下,用默认的字符集显示效果很好,但如果我随机生成 dfadfafasfdasfdasdgasdassdlfalgsdjalskd的话就无法认出来,还是取决于相同 /相近颜色的代码区分度公式啦

这个确实,并不能很好地将每个范围的像素点映射到一个或几个不相近的字符,如果使用重复的字符就更难处理了。

嗯,字符集不重复但区分度比较低或者太长的话显示效果也不好:D

顺便问一下,这个在线地址的域名是你买的吗还是?

自己买的。

您好!很高兴看到您使用Go语言开发了一个图片转字符画的小工具。这是一个非常有趣且实用的项目,能够将图像数据转换成可读的字符形式,既展示了编程技巧,又体现了创意。

在开发这类工具时,您可能已经遇到了一些技术挑战,比如如何准确地提取图像的像素信息,以及如何将像素值映射到合适的字符上。对于前者,您可能需要使用Go语言的图像处理库(如image包)来读取和解析图像文件;对于后者,您可能需要设计一种有效的算法来将像素的灰度值或颜色值转换为字符的密度或类型。

此外,为了提高工具的可用性和用户体验,您还可以考虑添加一些功能,比如支持多种图像格式、允许用户自定义字符集、提供调整字符画分辨率的选项等。这些功能可以进一步提升工具的灵活性和实用性。

最后,我想提醒您注意代码的健壮性和安全性。在处理图像文件时,要确保能够正确处理各种异常情况,比如文件损坏、格式不支持等。同时,也要考虑代码的性能优化,以确保在处理大尺寸图像时能够保持较快的处理速度。

总之,您的图片转字符画工具是一个非常有创意的项目,希望您能继续完善和优化它,为更多的用户带来便利和乐趣。如果您有任何疑问或需要进一步的帮助,请随时与我联系。

回到顶部