本人虽然也是老大不小的人了,但是对于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#版)相关推荐

  1. 教你用Python将图片转化为字符画!附源代码

    点击上方 "程序员小乐"关注公众号, 星标或置顶一起成长 每天早上8点20分, 第一时间与你相约 每日英文 Whatever you are facing today, remem ...

  2. python将图片转为字符_Python将图片转化为字符画

    简介 最近发现一个有趣的操作, 将一张图片转化为字符串的模式来显示! 如图 准备 首先需要安装一个CV模块用来导入图片的#pip install opencv-python 然后明确下程序的设计思路1 ...

  3. 将普通图片转化为字符画(Python)

    1.设计思路 如何把以.png的图片以不同字符把它形象的画出来呢? 我们知道其实一张图片是由很多不同像素点所组成的,每种像素点可以表示一种颜色.那么如果我们用不同的字符来代替各种像素点,是不是就可以将 ...

  4. 图片转化为字符画——get!小技巧【美人图,动物照,有趣注释图案】

    目录 一.想法来源 二.操作方法 1.魔性图注释代码样例 2.有趣的代码注释样例 3.巧用网站,上传图片呈现字符图 4.巧用代码注释工具 总结 前言 学习编程后,想用代码运行出图片上的形状.该怎么办? ...

  5. python将图片转化为字符图

    最近看到将图片转化为字符图的小实验,我觉得很有趣,所以决定自己实现一下. 步骤和原理如下: 读取图片的灰度值矩阵(0-255之间),灰度值矩阵主要反映的是图片的黑白程度,越黑越接近与0,越白越接近于2 ...

  6. 图片处理拓展篇 : 图片转字符画(ascii)

    首先要明确思路, 图片是由像素组成的, 不同的像素有不同的颜色(rgb), 那么既然我们要转化为字符画, 最直接的办法就是利用字符串来替代像素, 也就是用不同的字符串来代表不同的像素. 另外图片一般来 ...

  7. golang实现图片颜色反转、图片灰度、缩放、转为字符画

    看到网上很多通过字符形成的画,觉得很好玩,于是网上搜索了下原来叫字符画. 见百度百科:https://baike.baidu.com/item/%E5%AD%97%E7%AC%A6%E7%94%BB/ ...

  8. java实现图片转化为字符图片

    最近在网上看到一些图片转化为字符的网站 http://ku.cndesign.com/pic/ 网站地址 一个实例: ps:这里图片被吃掉了 转化之后为: eQHpv oNHHHAn ,2UTj VH ...

  9. python实现彩色图片灰度化并转化为字符型图片

    python可以用来学习用来工作,当然也能用来娱乐,相信众多pythoner都不会反对这一点,今天是周五了,又是一个美好的周末的开始,打算做点有意思的事情玩一玩,无意间看到一个很有意思的东西就打算拿来 ...

  10. 用C语言画出动态的图片,Qt通过图片组绘制动态图片

    本文实例为大家分享了Qt通过图片组绘制动态图片的具体代码,供大家参考,具体内容如下 任务实现: 通过定时器的使用来依次调用资源文件中的静态图片文件,从而达到是图片中内容动起来的效果: 效果实现: 实现 ...

最新文章

  1. 【bzoj3261】最大异或和 可持久化Trie树
  2. hadoop mac和linux,How to Install Hadoop? (On Mac OS,Linux or Cygwin on Windows)
  3. Linux 常见目录与区别
  4. 【Android 异步操作】Handler 机制 ( MessageQueue 消息队列的阻塞机制 | Java 层机制 | native 层阻塞机制 | native 层解除阻塞机制 )
  5. 偶遇mysql(Percona Server)的一个新bug
  6. oracle独立事务,Oracle中独立事务的处理
  7. 微信这10个牛X的隐藏功能,你知道几个?
  8. python字典{:4}_升级您的Python技能:检查字典
  9. 2017 ACM-ICPC 亚洲区(西安赛区)网络赛 xor (根号分治)
  10. 2021江西高考成绩6月23日几点查询,2021年江西高考成绩查询时间:6月23日
  11. SQL-SERVER触发器
  12. 杭电1003 java_杭电ACM 1003题
  13. 利用python编程实现音频剪辑
  14. duang,duang!!duang.java.mustReadTips
  15. Python读取,写入,保存txt文件
  16. 模具冲压与模具设计知识点
  17. 【雅思大作文考官范文】——第十二篇:'positive or negative' essay
  18. Spring中的applicationContext.xml与SpringMVC的xxx-servl
  19. matlab中a2=poly(p2),插值与拟合matlab实现
  20. GRE词汇统计大全(一)

热门文章

  1. php 问号乱码,如何解决php问号乱码的问题
  2. FANUC机器人的奇异点回避功能说明
  3. 学云计算能从事哪些岗位 未来职业发展是什么样
  4. Elasticsearch(ES)生产集群健康状况为黄色(yellow)的官方详细解释、原因分析和解决方案(实测可用)
  5. 程序员应该学什么语言
  6. android+拨打电话弹出无法连接到移动网络,呼叫转移设置网络异常怎么办
  7. 【Paper】Anomalous Instance Detection in Deep Learning:A Survey
  8. android 计时器服务,启动时使用计时器/alarmclock,更新服务_android_开发99编程知识库...
  9. 学术捜索新添找寻新近文章功能
  10. FIX协议教程1-什么是FIX会话和管理消息