找回密码
 立即注册
搜索
查看: 1869|回复: 9

[漫画] 【AA】【搞笑】用ASCII ART (AA画) 来批量全损压缩漫画

[复制链接]
     
发表于 2020-5-16 11:58 | 显示全部楼层 |阅读模式
本帖最后由 冰箱研会长 于 2020-5-16 17:39 编辑

更新:安装wkhtmltoimage 全自动出图 不需要截图了2333




一些必须写在前面的话

本篇教程 (如果这种垃圾帖子也可以成为教程的话), 除了扯淡以外无任何意义.
我对AA的了解属于浅尝辄止, 不排除已经有更先进, 更性能, 成品质量更稳定的方法存在

(因为我查都没查所以不知道有没有)

虽然结果大概率上不尽人意, 但如果它能给像我一样无法返校的人提供个消遣的话, 也不算完全的失败.
所以归根结底, 我还是希望各位能以轻松的心情看待本帖.


什么? 你问为什么明明都有AA了还要发图片? 因为S1的有每行最大字符限制, 而我做出来的AA都超限了....

那么从现在开始切入主题



要从一张图片制作出AA, 共有两个步骤:
1. 图像预处理
2. 像素符号映射



一这张图片作为原图为例, 如果我们不首先进行处理, 直接符号映射会得到什么结果呢?


嗯...很糟糕了.
华语作豚领袖nbht在点评 "普罗米亚" 的时候说过 "我们看动画.....看的是线条....不是色块...." (引用了名人名言)
先不论这句话在动画领域正确与否, 在AA画里, 我是觉得线条更为重要的.
同时, 因为AA原生就是不存在颜色的一种形式, 对于映射过程而言, 色块及其颜色都是一种干扰.
学习过素描的人可能知道, "画的真好, 像照片一样" 的前提是形准和阴影准, 那么我们在进行映射之前, 首先就是要提取出图像的线条和阴影信息.

要实现这个任务, 我们有很多的工具可以选择, 这里就找来人民的好朋友----老马制作的Comic Enhancer Pro
游客,本帖隐藏的内容需要积分高于 10000 才可浏览,您当前积分为 0

这里提供老马一系列原创软件的链接, 积分不够的话可以直接百度前往老马的博客.
因为老马随软件提供了非常详细的教程, 对于软件的具体操作这里不会说的特别详细.


直接纯黑白, 简单拿出线和阴影:

点击批量处理, 自动调用同一套设置


处理结束之后,进入映射部分.
这里我们主要的映射部分使用Python, 搭配Powershell实现批量处理.
代码如下:
  1. function asctrans($tpath,$sformat,$hscale,$wscale)
  2. {
  3. $pythonblock=@"
  4. from PIL import Image
  5. import os
  6. import sys
  7. filepath = sys.argv[1]
  8. heightarg = sys.argv[2]
  9. widtharg = sys.argv[3]
  10. CODE_LIB = r"B8&WM#YXQO{}[]()I1i!pao;:,.    "
  11. count = len(CODE_LIB)
  12. def transform_ascii(image_file):
  13.     image_file = image_file.convert("L")
  14.     code_pic = ''
  15.     for h in range(0,image_file.size[1]):
  16.         for w in range(0,image_file.size[0]):
  17.             gray = image_file.getpixel((w,h))
  18.             code_pic = code_pic + CODE_LIB[int(((count-1)*gray)/256)]
  19.         code_pic = code_pic + "\n"
  20.     return code_pic
  21. def convert_image(inputfilepath,heightratio,weightration):
  22.     heightratio=float(heightratio)
  23.     weightration=float(weightration)
  24.     image_file = Image.open(inputfilepath)
  25.     image_file=image_file.resize((int(image_file.size[0]*weightration), int(image_file.size[1]*heightratio)))
  26.     trans_data = transform_ascii(image_file)
  27.     print(trans_data)
  28. convert_image(filepath,heightarg,widtharg)
  29. "@
  30. Write-Output $pythonblock >> "$($tpath)\asc.py"
  31. Get-ChildItem -recurse -LiteralPath $tpath -include *.$sformat | ForEach-Object{
  32.         python "$($tpath)\asc.py" $_.FullName $hscale $wscale > "$($_.Directory)\$($_.Basename).txt"
  33. }
  34. }
复制代码
这段powershell的本质就是把所有python代码创建成一个字符串变量, 然后再目标目录位置创建python脚本并批量执行.
各位可以按需改动.

例子如下:


各位可以在
https://github.com/GrandArth/Risi-Pwsh-Profile
找到我的配置文件.

至于如何使用配置文件, 参见这个帖子的回复.

这里我建议各位使用Powershell 7.0及以上, 因为有些特性很可能无法在老powershell中实现.

这个函数总共接受4个参数, 目标文件夹位置, 目标文件类型 ,高度缩放, 宽度缩放.
根据你电脑对"空格"的渲染设置的不同, 你可能需要对后两个参数进行多次调试才能拿到比较好的效果.
在我这里, 两者为1:2的时候效果比较好.

那这篇垃圾帖子到这里就结束了, 希望大家早日开学上班(这是人话吗), 再也不用看我发的kuso帖子.

漫画转ASCII是怎么回事呢?漫画相信大家都很熟悉,但是漫画转ASCII是怎么回事呢,下面就让小编带大家一起了解吧。
漫画转ASCII,其实就是用符号表示图像,大家可能会很惊讶漫画怎么会转ASCII呢?但事实就是这样,小编也感到非常惊讶。
这就是关于漫画转ASCII的事情了,大家有什么想法呢,欢迎在评论区告诉小编一起讨论哦!

评分

参与人数 2战斗力 +2 收起 理由
RAMDA + 1 欢乐多
yst234 + 1 欢乐多

查看全部评分

回复

使用道具 举报

头像被屏蔽
     
发表于 2020-5-16 12:05 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
 楼主| 发表于 2020-5-16 12:19 | 显示全部楼层
本帖最后由 冰箱研会长 于 2020-5-16 12:21 编辑

更新一下压缩前后体积对比:

一张3m的猫娘图
压缩完了之后变成了18mb

众所周知, 图像体积当然是越大越好.
而且我们打开来看看, 可以看到几乎没有肉眼可见的损失
回复

使用道具 举报

发表于 2020-5-16 12:51 | 显示全部楼层
反向压缩,最为致命
回复

使用道具 举报

     
发表于 2020-5-16 13:17 | 显示全部楼层
冰箱研会长 发表于 2020-5-16 12:19
更新一下压缩前后体积对比:

一张3m的猫娘图

别的不说,这猫娘我射了
回复

使用道具 举报

     
发表于 2020-5-16 13:19 | 显示全部楼层
猫娘的转换后效果图呢?
回复

使用道具 举报

头像被屏蔽
     
发表于 2020-5-16 13:23 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
 楼主| 发表于 2020-5-16 13:37 | 显示全部楼层
王留美 发表于 2020-5-16 13:19
猫娘的转换后效果图呢?

回复

使用道具 举报

     
发表于 2020-5-16 15:07 来自手机 | 显示全部楼层
因为mpv依赖,我一般用caca。
回复

使用道具 举报

     
 楼主| 发表于 2020-5-16 15:14 | 显示全部楼层
本帖最后由 冰箱研会长 于 2020-5-16 15:18 编辑
linux40 发表于 2020-5-16 15:07
因为mpv依赖,我一般用caca。

Libcaca! 好东西 终端播视频还是很炫酷的 我记得ffpemg配套的ffplay也用caca库

哎 不过想生成能用的AA的话, 果然还是得分块做边缘检测... 不知道有没有人做

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-7-19 06:40 , Processed in 0.019919 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表