curl 的小妙用, 在终端里展示 gif / image / markdown

2025 年 12 月 2 日
 pDJJq

昨天发布了一个在终端里展示个人资料的小玩意 https://www.v2ex.com/t/1176162

但是有些朋友评论说: "不够帅, 不够帅"

熬了一个通宵, 现在更新支持 GIF / IMAGE / Markdown , 绝对能满足大部分的创作需求了.

效果展示:

在线体验:

命令行里运行: curl -N me.pdjjq.org

我实在不知道该起什么名字, 最开始是想要做一个有意思的展示简历的小玩意. 但是现在感觉只会变成一堆蔡徐坤/奶龙的 gif.

5918 次点击
所在节点    程序员
38 条回复
sojourner
2025 年 12 月 2 日
@HTravel 看给你能得,别人搞个小玩具发出来大家乐呵一下,你倒是给装上了。
noahliaszn
2025 年 12 月 2 日
@HTravel 不妨看看这个,终端里面有趣的还是挺多的

https://www.a1k0n.net/2011/07/20/donut-math.html
yeelooyeeuu
2025 年 12 月 2 日
这是什么原理?
tf2
2025 年 12 月 2 日
虽然猜到原理不难,但是把别人喷一顿是为啥。。。?

哥伦布有啥厉害的,不就是一个劲儿向西划船么。。对不?
pDJJq
2025 年 12 月 2 日
@yeelooyeeuu

通过 terminal 中的控制字符实现的.

如果你感兴趣可以看看这里: https://en.wikipedia.org/wiki/Control_character

一些新的 terminal 支持图像协议, 性能和效果会更好, 比如说 kiktty 的: https://sw.kovidgoyal.net/kitty/graphics-protocol/

我不是实现的高手, 和 claude code + gemini 确定的.
pDJJq
2025 年 12 月 2 日
@realpg

通过 terminal 中的控制字符实现的.

如果你感兴趣可以看看这里: https://en.wikipedia.org/wiki/Control_character

一些新的 terminal 支持图像协议, 性能和效果会更好, 比如说 kiktty 的: https://sw.kovidgoyal.net/kitty/graphics-protocol/

我不是实现的高手, 和 claude code + gemini 确定的.
pDJJq
2025 年 12 月 2 日
Love from DJJ 😘
HTravel
2025 年 12 月 2 日
@Alias4ck 这种没啥意思。我以前还在 Excel 绘过画呢,给我任何一张照片,我都能原封不动的画出来。原理很简单,每个单个格看作一个像素,然后用 POI 操作 excel 文档来填充这些单元格的背景即可。

记得日本还真有人在 Excel 作画,他们把这叫绘画仙人,认为牛逼的不行。我随便出手,就能做祖师爷
HTravel
2025 年 12 月 2 日
@Alias4ck 其实终端是有多行组成的,每行又必须是同样高度和宽度的等宽字符。也就是说,终端是可以看作 m x n 列的 Excel 单元格的,且每个单元格中只能放一个字符。原理就这么简单。

所以,你把 Excel 单元格边框去掉,背景涂黑,然后通过 VBA 操作一个个单元格,你就能模拟出终端软件,以及终端中跑着的这类动态效果。
windyskr
2025 年 12 月 2 日
太有趣了
stillywud
2025 年 12 月 2 日
大神好多,收藏~
realpg
2025 年 12 月 3 日
@pDJJq #26

好的 有关键字就行了

啥时候没事就可以研究一下了

我只是对各种技术的原理感兴趣 知道一个没事就研究一下
635925926
2025 年 12 月 3 日
noahliaszn
2025 年 12 月 3 日
@HTravel 太牛了有没有作品让我拜读一下
(你是 Github 那个拿 Excel 模拟 CPU 的吗?
Leon6868
2025 年 12 月 3 日
@HTravel #19 talk is cheap, show me your code
HTravel
2025 年 12 月 3 日
@Alias4ck 如果我说我会用 HTML 或 Java 这类模拟一个 Windows 3.2 的软件 GUI 界面,你们会觉得很牛逼吗?一个 UI 新人也搞得出来啊。

你们现在觉得牛逼的终端显示动态内容,早在 Windows 3.2 之前就成熟了。但当年大家只会认为 windows 3.2 GUI 是真牛逼,终端 TUI 是真落后。

你们花点时间了解下终端显示原理,明白它就是无限读一个字符串。其实你自己就能通过 HTML 画布把常见的终端显示效果模拟出来。甚至在终端里面显示图片、音乐、视频都不成问题。真做完这个,你会发现这不就是个功能受限的浏览器嘛。难道在浏览器里面让自己实现字符串、图片、音乐、视频的显示和播放很难?

甚至现在你都不需要自己写代码。你问下 AI ,终端显示原理是不是把屏幕看作 m x n 的一个个小格子,然后每个格子中只能显示一个字符?你写代码读一串字符串,将每个字符填充到 m x n 的字符数组里,这很难?你可以让 AI 直接给你写出这个终端软件来玩,根本没多少行代码。
noahliaszn
2025 年 12 月 3 日
@HTravel 太能说了呀, 终端各种 sequence escape 还有各种标准都能整你一壶的, 在你这里听起来都好简单哦
HTravel
2025 年 12 月 3 日
@Alias4ck 原理不就这么简单嘛。而且感觉你写的代码输出没怎么兼容过终端吧,否则,这不就是常见的常识嘛。你不了解这些,咋让一条消息同时在 GUI 、HTML 、命令行中都正常显示?

但你又不是做 TUI ,最多也就是实现多行的同时刷新,类似多线程下载显示进度那种,压根不难。

当然,现在多数人都是调包侠

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1176289

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX