视频版更好看 ↓↓↓↓
我们都知道,系统的控制台是无法显示图片和视频的。这对于经常需要在服务器上摸鱼刷视频进行开发运维的朋友来说,可能会有一些不方便。
于是就有人想出了一个办法,把图片转成ASCII码的字符阵列,这样就能在控制台中显示出来了。
这种方法的原理其实挺简单,就是将图片划分成许多小格子,每个格子再根据其灰度值,对应到一组深浅不一的字符上。
我以前也写过类似的一个程序 >>> 超不清视频播放器
不过相比于实用价值,这种转换更多时候是出于艺术风格化的目的。
而如果你也想在自己的视频或者课程作业中用上这样的效果,很简单,直接用别人写好的开源工具即可。比如 github 上的这个 ASCII-generator,只需要一行命令,就可以把图片或视频转成字符阵列。
项目地址:
https://github.com/vietnh1009/ASCII-generator
ASCII-generator是一个Python程序,所以要使用它,首先确保你的电脑上已经安装好了Python环境。(还没有安装Python的请参考入门教程中「安装」一节)
然后打开项目的Github页面,复制项目地址,通过git clone命令将项目克隆到本地。
或者直接下载zip压缩包到本地后解压。
接下来,你就可以运行代码进行转换了。
项目中的 img2txt,img2img,video2video 分别对应着图片转文本,图片转图片,和视频转视频。
后面带 _color 的是转成彩色的版本。
此外,你还可以通过运行参数,指定输入和输出的文件地址,字符数量的多少,背景色,阵列的宽度等等。
python video2video_color.py --input test.mp4 --mode complex --background white --num_cols 50
想必很多朋友都知道,最近何同学因为在视频中用到了这个项目而没有主动说明,受到了不少批评。
那么如果你也想用网上的代码,应该注意些什么呢?
首先你需要明确一点,开源软件并不等同于免费软件,更不是随便想怎么用就怎么用。开源软件的使用规范取决于这个软件使用了怎样的开源许可证。开源许可证有很多种,ASCII-generator使用的是其中相对宽松的一种:MIT许可证。它允许免费使用,也允许商用、修改和销售,但唯一的要求就是在代码中保留署名和原有的MIT声明。
那么问题来了,如果我拿它处理了一张图片,并把结果用在了我的视频里,是否需要说明呢?
理论上来说,如果只是用到代码处理的图片,即代码的衍生产物,不声明也并不违反协议。
但如果你发布的是代码或是基于代码构建的软件产品,是需要的。甚至像用到 numpy、requests 这样的底层库,也应当在介绍或附加文档中注明。比如这是某知名聊天软件在许可协议中列出其用到的开源代码。
而当你代码的大部分核心功能都是基于别人的代码时,于情于理都更应该给出明确的来源说明,而不是含糊其辞,让别人误解这完全是你自己编写的。
关注编程教室较早的朋友应该知道,我本人就是类似行为的受害者,代码曾经被全网营销号不署名搬运,甚至还有一些机构还拿去作为教学案例 >>> 一天之内我被全网上百个编程营销号抄袭!记录一下这个魔幻的时刻
所以,如果你想成为一名体面的开发者,请养成良好习惯,保留别人代码中的版权信息,遵守授权许可的要求,并尽可能注明所用到的开源代码。
互联网上的任何一行代码都不是天上掉下来的,背后都是开发者的付出。使用开源,尊重开源,参与开源,社区将因你而更美好。
Crossin的新书《码上行动:用ChatGPT学会Python编程》已经上市了。本书以ChatGPT为辅助,系统全面地讲解了如何掌握Python编程,适合Python零基础入门的读者学习。【点此查看详细介绍】
购买后可加入读者交流群,Crossin为你开启陪读模式,解答你在阅读本书时的一切疑问。
Crossin的其他书籍:
添加微信 crossin123 ,加入编程教室共同学习~
感谢转发和点赞的各位~