C# 将图片转成字符画
最近看到抖音上面很多人用文本文档字符打出一幅图片,个人表示不信,因为几万个字符几个小时码出来,这不是一般人干的事情。所以心血来潮写了个小程序干这个事。
首先准备知识基本原理
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# 将图片转成字符画相关推荐
- python动态图片转字符画_使用python实现一个将图片转换成字符画的功能
使用python实现一个将图片转换成字符画的功能 发布时间:2020-11-05 16:01:25 来源:亿速云 阅读:97 使用python实现一个将图片转换成字符画的功能?针对这个问题,这篇文章详 ...
- canvas全局合成画月牙_教你用Python将自己喜欢的图片转成字符画,居然还有动态的 - 松鼠爱吃饼干...
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章一级Python技术 ,作者派森酱 前言 字符画是一种由字母,标点或其他字 ...
- 实现图片转换成字符画
python小程序:实现图片转换成字符画 看到网上有很多这样的小程序,自己动手做一个 内附详细说明~ 先附上效果图 部分解释 运行平台: Win10 Python版本: Python3.9 IDE: ...
- c语言将一幅画转换为字符画,C#将图片转换成字符画
先看一下效果图 在Main方法中调用(首先要添加程序集System.Drawing,然后引入命名空间System.Drawing) ConvertToChar(new Bitmap(@"D: ...
- 用Python把图片转成字符画
刚学会上网的时候,看到上面的图觉的老神奇了.普通的英文字母居然可以画画.自己画是肯定看不出的.然而幼稚的我们被骗了 原图是这样的 通过下面的代码生成了字符画,什么原理呢? 我们知道显示器是由一个个像素 ...
- python PIL库将图片转换成字符画
将图片转换成文本文件查看形式 准备 源码 原始图像 生成文本文件后显示的结果 注意事项 准备 语言:python 环境:PIL库,准备好图片素材 源码 from PIL import Image as ...
- 如何将图片转换成字符画
思路: 1.将图片转换为黑白图 2.遍历所有像素点,建立像素点和字符的映射,保存为一个字符串 3.将字符串输出到文件里面就可以了 代码如下 from PIL import Image def getT ...
- python 一百行代码将图片转成字符画
该代码引用了PIL库的Image,所以必须先安装PIP,再安装PIL,记住,我的64位系统居然是选WIN32 结尾的那个whl文件,然后才安装成功. 下面贴代码: from PIL import Im ...
- python动态图片转字符画_GIF动态图,视频?都能用Python转换成字符画图像
字符画是一种由字母.标点或其他字符组成的图画,它产生于互联网时代,在聊天软件中使用较多,本文我们看一下如何将自己喜欢的图片转成字符画. 静态图片 首先,我们来演示将静态图片转为字符画,功能实现主要用到 ...
- canvas全局合成画月牙_GIF动态图,视频?都能用Python转换成字符画图像
字符画是一种由字母.标点或其他字符组成的图画,它产生于互联网时代,在聊天软件中使用较多,本文我们看一下如何将自己喜欢的图片转成字符画. 静态图片 首先,我们来演示将静态图片转为字符画,功能实现主要用到 ...
最新文章
- Android Handler sendMessage和 sendMessageDelayed的使用
- F5与NetScaler比较
- SQL查找是否存在,别再count了,很耗费时间的
- 为什么delete表数据,磁盘空间却还是被占用
- hdu 5624 KK's Reconstruction(最小生成树)
- java jpanel 缓冲画图_Java:Jpanel 缓冲区 图像
- java手动提交事务_Mybatis是如何将事务和连接池高效的结合的
- python中开关_pyq中的开关按钮
- 学微信,抖音也上线PC版
- netfilter与用户空间通信
- 手持设备点击响应速度,鼠标事件与touch事件的那些事
- vsftp服务器mysql认证_基于mysql控制vsftp的用户认证机制
- 【ProjectT】Tapestry • Quick Start • Forms
- 微信小程序云开发教程-JavaScript入门(2)-变量定义
- jdbc连接池的数量设置怎么才合适?
- 你是一名技术管理者还是项目管理者?
- MVC3.0+knockout.js+Ajax 实现简单的增删改查
- dropbox访问_使用PHP访问Dropbox
- 浙江省乡村快递寄件数据分析-快递100百递指数
- 点云法线估计:C++实现