https://www.zhihu.com/question/4389622860/answer/35811687913

如果这次风波能让一个三年未更新的项目重新活跃起来,那对于开源社区也是件好事。

赌一次吧。

如果有兴趣的话,点个赞。

超过 50 个的话,我会把此项目 fork 一份到 gitee,继续对其进行维护。

俩赞了,一会看看项目内容和大小,评估一下。

一小时就四赞了,还是凌晨,有点意思。把源码下来,用scc看了下代码量:

Language  Files  Lines  Blanks Comments  Code Complexity
───────────────────────────────────────────────────────────────────────────────
Python  7  552  46 16 490  58
Plain Text  3  179  18  0 161 0
License 1 21 4  0  17 0
Markdown  1  119  23  0  96 0
───────────────────────────────────────────────────────────────────────────────
Total  12  871  91 16 764  58

应该可以挺快消化。接下来看看它的当前功能和维护情况。


在 pypi 未找到发布版。项目内没找到功能说明文档。看下代码,utils 应该是公用部分,alphabets 是各种语言的文字。其他几个脚本看起来是 图片(image) 和视频(video) 转为 图片或文字,感觉有不少类似内容,重构空间不小。

打算尝试最基本的图片转文字功能,用中文文字。

依赖项

  • py3.6,机上只有 3.7,先碰一下运气吧。
  • cv2 网上搜了一下才发现是这个:% pip install opencv-python 卡在这步下不去:Building wheel for opencv-python (pyproject.toml) ... |

参考此文 在mac m1本 py3.7 上,费时二十多分钟构建;在老机器(最新版deepin)上,py3.9下,不用构建瞬间装好。

  • PIL: pip install pillow 已装
  • numpy已装

运行

python img2txt.py,成功得到文本文件 output.txt 如下:


三小时十赞~

看了 data/input.jpg 112K,生成的文本文件 6K,比想象中的压缩比小些,不过也算可观,尤其如果压缩后估计能再小几倍。

运行如下生成中文字符图:

% python img2img.py --language chinese

img2img.py:44: DeprecationWarning: getsize is deprecated and will be removed in Pillow 10 (2023-07-01). Use getbbox or getlength instead.
  char_width, char_height = font.getsize(sample_character)

貌似这几个脚本是新老版本并存,待研究。而且如何生成文本文件而不生成图片呢?


四小时二十赞~

粗看了一遍项目历史issue 和代码,暂未看到转文本的语言选项,虽然首页说明支持:

  • Given input image, we could generate ASCII art stored under text format in different languages (.txt)

不过既然 img2img.py 能生成图片,估计修改后可以支持生成文本文件。

初步评估项目状态

  • 最基本功能至少在 py3.6-3.9 仍有效。
  • 无自动测试代码,因此需手工测试。
  • 无pypi发布版。
  • 文档与实际可能有些许出入
  • 作者在issue中回应是2019年,最近一次代码提交在2021年

开源许可证

这是我一直不甚了解的领域。至今维护最久的项目也只是当初随手挑了一个。如有误解请不吝赐教。

根目录下 LICENSE 是原版 MIT。fonts/DejaVu Fonts License.txt 与该系列字体相关,略读下似乎与 MIT 类似。

还有两个字体文件不确定授权情况:

  • fonts/simsun.ttc
  • fonts/arial-unicode.ttf

图片、视频文件不确定版权情况:

  • data/input.jpg 貌似来源于某古装剧
  • data/input.mp4 实拍多名未知人物交谈

如果直接 fork 不动任何原资源和许可证的话,是否没有问题?


五小时 34 赞~

在gitee发现一位已经fork了该项目,尝试接触中。

如果着手维护,一些个人想到的非功能修改任务,欢迎补充:

  • 确认所有资源相关许可,如果无法确认则替代或删除。感谢评论区:“这两个字体都是微软系统自带的,原则上不能二进制重发布。建议换成Noto之类的开源字体。”
  • 完善中文文档
  • 结合现有演示,添加运行示例
  • 逐步添加常见实用问题与解决
  • 在 pypi 发布版本,便于试用

七小时 53 赞~

着手准备fork。刚发现原库clone下来后有 1.16 GB。本来最好是保留原始 git 历史,但为方便开发考虑,打算在本地清理过后尽量减小体积后再push第一个提交,这样参与者下载会快不少。当然会在首页说明从何而来并保留原始许可证。

优先考虑清理的资源:

  • demo下的gif 500M 左右
  • 有许可证潜在问题的字体(见上)
  • data/input.mp4

如果代码中用到,会附加文档说明出处,方便开发者按需取用。

想了想还是先把原库直接导入。作为起点先开始商讨细节吧:

https://gitee.com/zhishi/ASCII-generator/


九小时 62 赞

已建 第一个issue

美西时间晚十点,下线休息,明儿见。


11-20:79赞

原仓库有一个新pr,看看作者是否会继续维护。如果是自己已不用很久的工具,很少会重新开始维护,尤其是意识到为何而火的情况下。

个人对此项目有兴趣的原因:

  • python 时不时会用
  • 希望探索低成本创作图片、动画的方法
  • 尝试用更低维护成本复活开源库,这个体量比较合适
  • 先着手清理,有阶段进展会继续更新。

刚看到作者分享了 何同学与他的电邮交流,原库是否会继续维护待观察。

在此前 gitee 任务仍会抽空推进。