使用Qt编写的图片转彩色字符画的源代码,基于C++的图片转Ascii码字符画源代码

ImageToAscillArt

这是一个将图片转换成字符画的小程序。

前言

首先说一下什么是字符画,顾名思义即通过字符组合成图片。具体分为两种:
1.通过将图片像素rgb经过公式转换成灰度值,然后由对应灰度值的ascii字符表示该像素,进而组成字符画。
2.通过html语言将提取到的像素rgb对应设置到字符上,然后组成字符画。

功能概述:

本程序主要有两个类组成:
ImgToAsciiArt:
该类负责将给定的图片转换成对应灰度的ascii字符串或者对应色彩的html字符串,主要提供下面两种方法,分别转换ascii字符串和html串,具体内容详见代码。
QString imgToAscii(QImage &image,QByteArray asciiArray=QByteArray());
QStringList imgToHtml(QImage &image, QString htmlStrSet, bool isOrder,bool isAlpha = false);
ImgToAsciiWidget:
该类则主要负责界面,包括参数的设置,图片文件的选择,字符画的生成与保存。

运行截图:

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

小结:

该程序没啥实际用途,纯粹是周末无聊做着玩。
经过实际测试对于一些小分辨率层次分明的ico图片转换的效果还不错,目前程序转换ascii灰度值的字符由内部指定,因为不同字符的灰度有一定的序列,排序越准,字符画效果越好。而html字符画的字符可以由用户指定,但因为不同字体下一些字符的宽度是不同的,所以目前字体选择比较局限,内部使用字符等宽的宋体,可以实现所有的英文字符或者中文字符不论大小写宽度是一致的。但由于中文和英文的宽度是不一致的,所以暂时还不能中英文混合使用。此外由于彩色字符画是通过html文本字符串实现的,相对ascii码串较长,在实际字符画绘制时,会花费较多的时间,图片转换所得html串越长越慢,目前采用一定数量的行绘制一次,解决了长时间程序无响应的问题,但完全绘制完成还是需要一定的时间,暂时还没找到更好的办法。

完整代码下载地址:使用Qt编写的图片转彩色字符画的源代码

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云哲-吉吉2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值