概述
最近看到抖音上面很多人用文本文档字符打出一幅图片,个人表示不信,因为几万个字符几个小时码出来,这不是一般人干的事情。所以心血来潮写了个小程序干这个事。
首先准备知识基本原理
1.图片转黑白像素
2.读取像素点找到对应的字符
3.输出字符
1转成黑白图片
Bitmap bitMap = new Bitmap(path);
for (int i = 0; i < bitMap.Width; i++)
{
for (int j = 0; j < bitMap.Height; j++)
{
Color origalColor = bitMap.GetPixel(i, j);
int grayScale = (int)(origalColor.R * .3 + origalColor.G * .59 + origalColor.B * .11);
Color newColor = Color.FromArgb(grayScale, grayScale, grayScale);
bitMap.SetPixel(i, j, newColor);
}
}
这个里面很简单,至于为什么RGB是乘以这个权重,真不知道,可能要问一下学物理的大牛了。
2.第二步找到对应的字符
我们先定义字符集
string chars = "#8XOHLTI)i=+;:,. ";
这里的字符集可以是任意的,总体来讲就是保持一定顺序,先密密麻麻后稀稀疏疏 还是先稀稀疏疏后密密麻麻都可以,只不过是底色的差异。
好了,然后我们根据像素点rgb找到对应数组的index
for (int i = 0; i < bitMap.Width; i+=2)
{
for (int j = 0; j < bitMap.Height; j++)
{
Color origalColor = bitMap.GetPixel(i, j);
int index = (int)((origalColor.R + origalColor.G + origalColor.B) / 768.0 * chars.Length);
bmpstr += chars[index];
}
bmpstr += "r";
}
这里为什么是i+=2呢? 因为我们字符都是国字脸, 长!!!!所以 保证比例 我们跳行取像素点吧。
3.输出到文本文件, 大功告成。
原来抖音几个小时的事情,对万能的程序员只要几分钟 (꒦_꒦)
最后莉哥的效果。
最后
以上就是微笑白猫为你收集整理的C# 将图片转成字符画的全部内容,希望文章能够帮你解决C# 将图片转成字符画所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复