c 语言图片转字符画,图片转化为字符画(C#版)
本人虽然也是老大不小的人了,但是对于ACG还是充满爱,常年混迹于AB站。熟悉的人应该知道有一种视频很火,就是将一般的视频内容全部用字符的方式呈现。不知道的人请点击这里:http://www.bilibili.tv/video/av450006/,这种视频很多。
虽然不是技术宅,但是作为码农的我也动手实现了一下 图片 转换 字符画。
代码是C#实现的,怎么说呢,C++虽然高效,但是C#提供了更强大的类库支持,写代码会轻松不少 orz
代码思路很简单就是把图片分成n多个小块,每块通过特定的方法计算出一个字符替代,我用的是颜色亮度的平均值,效果还不错,见下图
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
namespace BadApple
{
class Bitmap2Chars
{
// 通过计算rowSize*colSize区域的亮度平均值用一个字符替代
public static String BitmapConvert(Bitmap bitmap, int rowSize, int colSize)
{
StringBuilder result = new StringBuilder();
char[] charset = { 'M', '8', '0', 'V', '1', 'i', ':', '*', '|', '.', ' '};
int bitmapH = bitmap.Height;
int bitmapW = bitmap.Width;
for (int h = 0; h < bitmapH / rowSize; h++)
{
int offsetY = h * rowSize;
for (int w = 0; w < bitmapW / colSize; w++)
{
int offsetX = w * colSize;
float averBright = 0;
for (int j = 0; j < rowSize; j++)
{
for (int i = 0; i < colSize; i++)
{
try
{
Color color = bitmap.GetPixel(offsetX + i, offsetY + j);
averBright += color.GetBrightness();
}
catch (ArgumentOutOfRangeException)
{
averBright += 0;
}
}
}
averBright /= (rowSize * colSize);
int index = (int)(averBright * charset.Length);
if (index == charset.Length)
index--;
result.Append(charset[charset.Length - 1 - index]);
}
result.Append("\r\n");
}
return result.ToString();
}
}
}
最终程序生成的效果图:
原图(我的桌面)
文字图:
等有时间,C++版,java版,python版都来一份好了,有时间的话(;¬_¬)
c 语言图片转字符画,图片转化为字符画(C#版)相关推荐
- 教你用Python将图片转化为字符画!附源代码
点击上方 "程序员小乐"关注公众号, 星标或置顶一起成长 每天早上8点20分, 第一时间与你相约 每日英文 Whatever you are facing today, remem ...
- python将图片转为字符_Python将图片转化为字符画
简介 最近发现一个有趣的操作, 将一张图片转化为字符串的模式来显示! 如图 准备 首先需要安装一个CV模块用来导入图片的#pip install opencv-python 然后明确下程序的设计思路1 ...
- 将普通图片转化为字符画(Python)
1.设计思路 如何把以.png的图片以不同字符把它形象的画出来呢? 我们知道其实一张图片是由很多不同像素点所组成的,每种像素点可以表示一种颜色.那么如果我们用不同的字符来代替各种像素点,是不是就可以将 ...
- 图片转化为字符画——get!小技巧【美人图,动物照,有趣注释图案】
目录 一.想法来源 二.操作方法 1.魔性图注释代码样例 2.有趣的代码注释样例 3.巧用网站,上传图片呈现字符图 4.巧用代码注释工具 总结 前言 学习编程后,想用代码运行出图片上的形状.该怎么办? ...
- python将图片转化为字符图
最近看到将图片转化为字符图的小实验,我觉得很有趣,所以决定自己实现一下. 步骤和原理如下: 读取图片的灰度值矩阵(0-255之间),灰度值矩阵主要反映的是图片的黑白程度,越黑越接近与0,越白越接近于2 ...
- 图片处理拓展篇 : 图片转字符画(ascii)
首先要明确思路, 图片是由像素组成的, 不同的像素有不同的颜色(rgb), 那么既然我们要转化为字符画, 最直接的办法就是利用字符串来替代像素, 也就是用不同的字符串来代表不同的像素. 另外图片一般来 ...
- golang实现图片颜色反转、图片灰度、缩放、转为字符画
看到网上很多通过字符形成的画,觉得很好玩,于是网上搜索了下原来叫字符画. 见百度百科:https://baike.baidu.com/item/%E5%AD%97%E7%AC%A6%E7%94%BB/ ...
- java实现图片转化为字符图片
最近在网上看到一些图片转化为字符的网站 http://ku.cndesign.com/pic/ 网站地址 一个实例: ps:这里图片被吃掉了 转化之后为: eQHpv oNHHHAn ,2UTj VH ...
- python实现彩色图片灰度化并转化为字符型图片
python可以用来学习用来工作,当然也能用来娱乐,相信众多pythoner都不会反对这一点,今天是周五了,又是一个美好的周末的开始,打算做点有意思的事情玩一玩,无意间看到一个很有意思的东西就打算拿来 ...
- 用C语言画出动态的图片,Qt通过图片组绘制动态图片
本文实例为大家分享了Qt通过图片组绘制动态图片的具体代码,供大家参考,具体内容如下 任务实现: 通过定时器的使用来依次调用资源文件中的静态图片文件,从而达到是图片中内容动起来的效果: 效果实现: 实现 ...
最新文章
- 【bzoj3261】最大异或和 可持久化Trie树
- hadoop mac和linux,How to Install Hadoop? (On Mac OS,Linux or Cygwin on Windows)
- Linux 常见目录与区别
- 【Android 异步操作】Handler 机制 ( MessageQueue 消息队列的阻塞机制 | Java 层机制 | native 层阻塞机制 | native 层解除阻塞机制 )
- 偶遇mysql(Percona Server)的一个新bug
- oracle独立事务,Oracle中独立事务的处理
- 微信这10个牛X的隐藏功能,你知道几个?
- python字典{:4}_升级您的Python技能:检查字典
- 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 xor (根号分治)
- 2021江西高考成绩6月23日几点查询,2021年江西高考成绩查询时间:6月23日
- SQL-SERVER触发器
- 杭电1003 java_杭电ACM 1003题
- 利用python编程实现音频剪辑
- duang,duang!!duang.java.mustReadTips
- Python读取,写入,保存txt文件
- 模具冲压与模具设计知识点
- 【雅思大作文考官范文】——第十二篇:'positive or negative' essay
- Spring中的applicationContext.xml与SpringMVC的xxx-servl
- matlab中a2=poly(p2),插值与拟合matlab实现
- GRE词汇统计大全(一)
热门文章
- php 问号乱码,如何解决php问号乱码的问题
- FANUC机器人的奇异点回避功能说明
- 学云计算能从事哪些岗位 未来职业发展是什么样
- Elasticsearch(ES)生产集群健康状况为黄色(yellow)的官方详细解释、原因分析和解决方案(实测可用)
- 程序员应该学什么语言
- android+拨打电话弹出无法连接到移动网络,呼叫转移设置网络异常怎么办
- 【Paper】Anomalous Instance Detection in Deep Learning:A Survey
- android 计时器服务,启动时使用计时器/alarmclock,更新服务_android_开发99编程知识库...
- 学术捜索新添找寻新近文章功能
- FIX协议教程1-什么是FIX会话和管理消息