半肾
精华
|
战斗力 鹅
|
回帖 0
注册时间 2019-8-30
|
本帖最后由 冰箱研会长 于 2020-5-16 17:39 编辑
更新:安装wkhtmltoimage 全自动出图 不需要截图了2333
一些必须写在前面的话
本篇教程 (如果这种垃圾帖子也可以成为教程的话), 除了扯淡以外无任何意义.
我对AA的了解属于浅尝辄止, 不排除已经有更先进, 更性能, 成品质量更稳定的方法存在
(因为我查都没查所以不知道有没有)
虽然结果大概率上不尽人意, 但如果它能给像我一样无法返校的人提供个消遣的话, 也不算完全的失败.
所以归根结底, 我还是希望各位能以轻松的心情看待本帖.

什么? 你问为什么明明都有AA了还要发图片? 因为S1的有每行最大字符限制, 而我做出来的AA都超限了....
那么从现在开始切入主题

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

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

嗯...很糟糕了.
华语作豚领袖nbht在点评 "普罗米亚" 的时候说过 "我们看动画.....看的是线条....不是色块...." (引用了名人名言)
先不论这句话在动画领域正确与否, 在AA画里, 我是觉得线条更为重要的.
同时, 因为AA原生就是不存在颜色的一种形式, 对于映射过程而言, 色块及其颜色都是一种干扰.
学习过素描的人可能知道, "画的真好, 像照片一样" 的前提是形准和阴影准, 那么我们在进行映射之前, 首先就是要提取出图像的线条和阴影信息.
要实现这个任务, 我们有很多的工具可以选择, 这里就找来人民的好朋友----老马制作的Comic Enhancer Pro
游客,本帖隐藏的内容需要积分高于 10000 才可浏览,您当前积分为 0
这里提供老马一系列原创软件的链接, 积分不够的话可以直接百度前往老马的博客.
因为老马随软件提供了非常详细的教程, 对于软件的具体操作这里不会说的特别详细.

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

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

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

各位可以在
https://github.com/GrandArth/Risi-Pwsh-Profile
找到我的配置文件.
至于如何使用配置文件, 参见这个帖子的回复.
这里我建议各位使用Powershell 7.0及以上, 因为有些特性很可能无法在老powershell中实现.
这个函数总共接受4个参数, 目标文件夹位置, 目标文件类型 ,高度缩放, 宽度缩放.
根据你电脑对"空格"的渲染设置的不同, 你可能需要对后两个参数进行多次调试才能拿到比较好的效果.
在我这里, 两者为1:2的时候效果比较好.

那这篇垃圾帖子到这里就结束了, 希望大家早日开学上班(这是人话吗), 再也不用看我发的kuso帖子.
漫画转ASCII是怎么回事呢?漫画相信大家都很熟悉,但是漫画转ASCII是怎么回事呢,下面就让小编带大家一起了解吧。
漫画转ASCII,其实就是用符号表示图像,大家可能会很惊讶漫画怎么会转ASCII呢?但事实就是这样,小编也感到非常惊讶。
这就是关于漫画转ASCII的事情了,大家有什么想法呢,欢迎在评论区告诉小编一起讨论哦!
|
评分
-
查看全部评分
|