导语:

本篇博客将带着大家一起动手, 做一部独一无二的『字符动画』


字符动画

目标实现:

1.通过将现有动画MP4文件通过pr或AoaoPhoto Video to Picture Converter 转化为jpg或其他类型的图片文件

2.再将刚得到的图片文件通过Ascgen 2转化成txt文件

3.再将txt文件中的内容通过代码(.exe文件)读取打印显示

4.然后, 再通过调节显示速度(等同于“帧”), 使txt文件中的字符集按顺序显示

用到的软件:

AoaoPhoto Video to Picture Converter        ~~~~~  下载链接

Ascgen 2      ~~~~  下载连接

另外, 编译器使用的是:VS2013

接下来,先来看一下源码:

#include <stdio.h>                 //此文件中定义了C语言的一些重要函数
#include <string.h>                   //此文件中定义了C_字符函数
#include <stdlib.h>                   //此文件中定义了编译器中的一些特殊函数
#include <Windows.h>                  //此文件中定义了系统窗口操作命令
#include <assert.h>                   //断言void gotoxy(int x, int y)
{COORD pos; pos.X = x - 1; pos.Y = y - 1;         //COORD  为 Windows.h 中定义的一个结构体SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}int main()
{system("color f0");              long i;                             char FileName[100];                 char hi[254000];                    FILE *in;                           system("C:\\Users\\ASUS\\Desktop\\字符动画.mp4"); //打开视频或音频文件,Sleep(3000);                     //放幻灯片,Sleep()函数调节播放速度for (i = 1; i <= 999; i++)  //i 的范围转换为(.txt)文件的个数{sprintf(FileName,"C:\\Users\\ASUS\\Desktop\\字符动画\\txtpicture\\(%ld).txt", i);in = fopen(FileName, "r");assert(in != NULL);      fread(hi, 1, 254000, in);//改 ,这是你一个TXT文件里的字符串. printf("%s\n%d", hi, i);gotoxy(1, 1);          Sleep(26);              //等待27毫秒执行fclose(in);}
}

上面的代码可以理解吗?不懂的话也没关系, 下面是加了大部分注释的代码:

/**********************************************
*       字符动画  base 1.0.1
***********************************************//***************** 头文件 ***************************/#include <stdio.h>                     //此文件中定义了C语言的一些重要函数
#include <string.h>                       //此文件中定义了C_字符函数
#include <stdlib.h>                       //此文件中定义了编译器中的一些特殊函数
#include <Windows.h>                  //此文件中定义了系统窗口操作命令
#include <assert.h>                       //断言/****************************************************
函数名称:        gotoxy
函数参数:        int x, int y
返回类型:        void (NULL)
函数功能:        将光标位置移动到坐标x,y
****************************************************/
void gotoxy(int x, int y)
{COORD pos; pos.X = x - 1; pos.Y = y - 1;         //COORD  为 Windows.h 中定义的一个结构体SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}/***************************************************
函数名称:        main
函数功能:        程序入口
***************************************************/
int main()
{system("color f0");                  //改变系统控制台前景色(黑色)、背景色(亮白色)long i;                                //创建变量 i,用于存储(.txt)文件个数char FileName[100];                 //创建数组 FileName[],用于存储文件名称,文件名称最大不超过100个符号char hi[254000];                    //这里是字符数组,用于存储从文件读取出的字符串FILE *in;                            //定义一个FILE类型的结构体指针 in system("C:\\Users\\ASUS\\Desktop\\字符动画.mp4");   //打开视频或音频文件,Sleep(3000);                     //窗口等待3秒后输出,可视需求更改时间,单位毫秒//循环将.txt文件中的符号打印在控制窗口中,打印完接着打印下一个.txt文件//放幻灯片,Sleep()函数调节播放速度for (i = 1; i <= 999; i++)//i 的范围转换为(.txt)文件的个数{sprintf(FileName,"C:\\Users\\ASUS\\Desktop\\字符动画\\txtpicture\\(%ld).txt", i);in = fopen(FileName, "r");assert(in != NULL);      //断言结构体指针 in 不为空fread(hi, 1, 254000, in);//改 ,这是你一个TXT文件里的字符串. printf("%s\n%d", hi, i);gotoxy(1, 1);          //每次打印完,将光标移动到最前面,使下次打印依然在开头开始打印Sleep(26);//等待27毫秒执行fclose(in);}
}

理解有些吃力?没关系, 在评论区给我留言吧!


操作步骤

详细介绍一下制作字符动画所需的具体操作, 感兴趣的小伙伴可以跟着步骤尝试做一下哦!

第一步:准备一个“.mp4”文件来做素材, 我们最终做出的成品就是这个视频文件的“字符版”

你选择的视频可能不叫做movie, 还可能不是.mp4的, 还可以做吗?小编可以直接告诉你, 没问题!都可以!只要是视频文件就行.

第二步:把上面的代码放在我们计算机的编译器中, 准备稍后更改里面的一些参数. 这里, 我默认大家对计算机相关知识已经有了一定的知识. 如果不是, 也没有关系, 在评论区给我留言或者私聊我寻文件链接

第三步:将准备好的动画,通过使用AoaoPhoto Video to Picture Converter或其他工具软件,转换为图片;

图片最下面的 Output Folder 记住位置, 生成的图片全在这里了

第四步:再将图片通过Ascgen 2转换为字符组成的TXT文本

进入下面的窗口

转换过程很耗时间, 可以先去倒杯茶, 一边喝茶慢慢等. 最终它将把图片文件转换成.txt文件存放在它的 Output Directory 中

第五步:将所有的文本文件重命名——(0)、(1)……(%%), 括号为英文输入的括号, 第一个序号为零, 下一个为1,……一直到最后一个文本文件, 中间不允许缺少数序,

PS: 快捷重命名的办法:Ctrl + A 选中所有的.txt文件, 鼠标指到第一个文件处, 鼠标右击, 选择重命名, 直接重命名为(0).txt即可, 然后点击确定, 所有的文件就可以自动按次序重命名了

第六步:到代码中(没有编译器软件,可以将.c文件用记事本打开)

更改以下代码行中的内容:

注:将动画所需的音频文件或视频文件也可以放入文件夹(文件)中, 将其重命名”即可

注意地址的更改:

上面的地址复制过去,然后把地址中所有的单斜杠 ‘\’ 改为双斜杠 ‘\\’, 例如上面的地址改完就是“D:\\1.My_Windows\\武器大师”, 你的地址肯定和我不一样, 照同样的方法改就好

最后,上面的步骤全部完成后,执行代码即可

操作步骤较为复杂, 但熟能生巧, 多试几遍, 总能成功的, 小编前(n-1)次的尝试也都是以失败告终的, 遇到问题解决问题才是进步的捷径


常见问题:

  • .exe文件点开后弹窗显示出现错误:

不要怕,这个文件并非广告病毒文件,弹窗是由于操作出现了问题,不会损坏电脑。我们可以检查操作步骤是否出现问题,如若没有,将弹窗文字复制到百度搜索相关解决方案

  • 动画播放效果不佳:

两种情况,一种是播放画面不完全,可以鼠标右击窗口,点击属性,更改字体大小,字体格式,

  • 其他问题

可以直接在评论区留言~~~


◆ 回到开头 @ 目录:

操作步骤

◆ 其他博客 @ https://blog.csdn.net/weixin_42194161

◆ 相关博客

探索篇 | C实现猜数字游戏

学习篇 | 浮点数的表示规则

感谢阅读本篇博客,如果有不错的建议或意见,欢迎在评论区留言,喜欢的话,麻烦点个赞和关注哦~~~


探索篇 | C简单实现『字符动画』相关推荐

  1. Ventoy - 免格式化!超简单的『多合一』系统启动盘制作神器 (开源免费,多平台支持)...

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 赚一个亿需要多久?先定下『一个亿』的小目标,万一实现了呢? 简单来说,Ventoy 是一个制作可启动 U 盘的开源 ...

  2. 玩转系统|Ventoy – 免格式化,超简单的『多合一』系统启动盘制作神器

    Ventoy 现在可谓是U 盘启动界的一支独秀,简单来说,Ventoy 是一个制作可启动 U 盘的开源工具.有了 Ventoy 你就无需反复地格式化 U 盘,你的U盘不在局限于绑定某个PE系统,你只需 ...

  3. python视频转字符动画_Python 视频转字符动画 - 进阶

    这篇文章是 视频转字符动画-Python-60行代码 的后续,如果感兴趣,请先看看它. 0. 话说在前头 最新版使用了画布方式实现,和本文相比改动非常大,如果对旧版本的实现没啥兴趣,可以直接移步 vi ...

  4. 『WX运动』想上封面?就你那点步数怎么能行?点进来!老铁,借一步说话

    原文链接:刘小七の技术站 - Itlxq 个人主页:主页直达 - http://www.itlxq.com 公众号:刘小七的技术站 想要进技术交流裙的,扫下方码子,急速获取. 微信公众号 - 刘小七的 ...

  5. 『Three.js』几个简单的入门动画(新手篇)

    theme: smartblue 本文简介 点赞 + 关注 + 收藏 = 学会了 还记得当初学 CSS 时,有点基础后立刻就想搞点动画出来玩一下. 在了解了 Three.js 的基础概念之后也有这个想 ...

  6. 系列 | 漫谈数仓第四篇NO.4 『数据应用』(BIOLAP)

    点击上方蓝色字体,置顶/星标哦 目前10000+人已关注加入我们 本文目录CONTENTS ☞ 01.可视化BI工具 [ 开源BI,商业BI,传统BI ] ☞ 02.OLAP科普 [ ROLAP  M ...

  7. java动画代码_利用Java制作字符动画实例代码

    前言 今晚闲来无事,整理了一下电脑中尘封已久的旧代码,看着那些年自己写过的代码,踩过的坑,顿时老泪纵横.正当在感叹之际,突然发现在"马克思"文件夹下出现了一个好玩的项目,那就是N年 ...

  8. 视频转字符动画(Python3)

    今天刷抖音,看到了一个<极乐净土>的字符动画,舞蹈看起来妖娆啊,满屏幕的字符勾勒出美女的身影,在配上极乐净土的音乐,简直是程序员们的精神食粮啊!!!! 以前也遇到过这种字符动画,当时简单想 ...

  9. java字符动画思路_【轻松一刻】Java制作字符动画

    前言 今晚闲来无事,整理了一下电脑中尘封已久的旧代码,看着那些年自己写过的代码,踩过的坑,顿时老泪纵横.正当在感叹之际,突然发现在"马克思"文件夹下出现了一个好玩的项目,那就是N年 ...

最新文章

  1. java中是什么意思_java中是什么意思?
  2. .net 面试题系列文章三(附答案)
  3. poj 1015 Jury Compromise_dp
  4. 文件的上传和下载---学习笔记
  5. mysql5.1修改登陆密码_mysql 5.1版本修改密码及远程登录mysql数据库的方法
  6. .net core linux安装
  7. 读芯片信息出错3_十分钟看懂串口打印信息(1)
  8. 写出python字符串三种常用的函数或方法_python中几种常用字符串函数
  9. Python3 hex() 函数
  10. 华为Mate 50系列明年亮相:或首发高通骁龙898 4G芯片
  11. gdal 使用 无法解析的外部_【小马哥学习笔记】STM32G071 PD0 PD2引脚使用注意事项...
  12. 信息安全工程师第二版教材主要章节内容
  13. JS动态生成表格案例
  14. Unity 粒子特效相对位置和大小的调整
  15. transition过渡的基本使用
  16. oracle临时表经常被锁_linux安装oracle
  17. Elasticsearch学习之的delimited_payloads使用
  18. 蓝桥杯---试题 历届试题 填字母游戏(博弈)
  19. 《千与千寻》与《天空之城》配色分享
  20. MySQL索引(什么是索引、如何创建索引、什么时候用索引、索引的作用)

热门文章

  1. 今日byte引发之尴尬
  2. tightvnc ubuntu,10步掌握ubuntu配置tightvnc的方法
  3. 【酷熊科技】工作积累 ----------- C#自动添加using引用命名空间
  4. 关于一个字节占几位的问题
  5. jmeter学习指南之详解US六仔源码开发jmeter线程组
  6. 卷积神经网络之4:VGG结构
  7. ECMA 2016(ES7)新特性
  8. 如何解决Virtualbox和Mactype的冲突
  9. mac 4k分辨率 字太小 27寸 hidpi_电视机4a和4k的区别
  10. 来自台湾花友的新手养护指南(转载)