31 条回复  ·  3322 次点击
Tink 初学 2025-12-2 11:48:48
这个比较强,everything https://github.com/mmulet/term.everything
realpg 小成 2025-12-2 11:56:27
这是什么原理? 正常 curl 的输出不是顺序的
Alias4ck 小成 2025-12-2 12:04:35
@pDJJq 哥们 你 docs 里面写的就是这个啊 图片/GIF 转 ASCII 艺术(支持彩色) 突然来句怎么和图像对比. 你也没实现图像啊 真正的图片显示也不是你这种啊 只有支持图片协议的终端才有比如 kitty /ghostty/iterm https://i.imgur.com/6TgydGr.jpeg
HTravel 初学 2025-12-2 12:29:21
你如果能理解终端显示的就是一维的字符流,然后通过 ESC 字符切换到控制模式来更改接下来的字体颜色、背景、闪烁、清除当前行、换行什么的,然后各个终端软件自然还能继续扩展,在 ESC 字符切换到控制模式后用另外的命令字来表示接下来的是图片、视频什么的。你就会发现,但凡你 GUI 编程时自绘过组件,就会发现让终端显示这些东西了然无趣,压根没任何技术难点。 甚至你可以直接解析这个字符流,将其转换为 HTML ,直接在浏览器中看到你想要的效果。HTML/CSS/JS 实现这一切很难么?
pDJJq 楼主 初学 2025-12-2 13:11:22
@Alias4ck #12 还真是
pDJJq 楼主 初学 2025-12-2 13:12:12
@codehz 收到!
pDJJq 楼主 初学 2025-12-2 13:33:38
@HTravel 当前是通过 curl + 控制字符实现的.和 TUI 相比环境相当受限: 单向接收消息, 无系统信息, 网络延迟. 不如你写个 demo? 给看看怎么通过 curl + Terminal 做更复杂功能. 我对 terminal 以及 termimal 支持的 Graphics Protocol 了解的并不多, 看看你的.
pDJJq 楼主 初学 2025-12-2 14:12:32
@codehz 哥, 我服了. 确实有用. 我顺便也把过去的清屏改成光标复位 refresh 帧, 确实稳定了不少. 非常感谢!
codehz 初学 2025-12-2 14:22:20
@pDJJq 但你开头还是要补充一个清屏,你运行两次可能会有上次输出的残留在缓冲区了
HTravel 初学 2025-12-2 14:37:47
@pDJJq 我闲的蛋疼玩这种?我之所以清楚,就是因为终端中有些效果与 GUI 中不一致,我为了让我的软件能同时在两种环境下运行且运行效果尽可能一致,才了解了下终端原理。最后发现,终端做到极致,不就是另一个 GUI 吗?那我直接在终端中打开 GUI 界面不就行了嘛。 我愿意花时间做的软件,都必须是能用一辈子那种。所以数据同步、增备、全备、快照,这类软件我全部自己实现了一遍。以及针对不同数据,比如文本类看小说、音频类听音乐、视频类看影视综艺、剪贴板在能支持浏览器上就能跨设备同步这种,我都给自己写了一套,并且能通过 termux 放到安卓里面完全跑起来,且挂后台不耗电。 至于其他的,我想想原理就行了,不可能投入时间的,完全不值得。
返回顶部