可否通过编程为涂色书填充出和谐的颜色? SysyCode,IT & Art 第一眼看到这个问题的时候,我立马想到了坐我对面的工程师,他问过我好几次关于配色的问题,但最后都以「能用编程来解决吗」收场。我虽然学艺术出生,但也非常接受工程师的思考逻辑。 在艺术与科技之间,我是一个矛盾体。在我的观点里,艺术的传统形式已经濒临绝境,必须通过技术来突破了。同时我也深深地相信,总有一天人工智能会占领我们的世界。我认为,懂得创造艺术,是人工智能的一个标杆。 所以,我的回答更多的是基于我这个矛盾体。 看了大部分的答案,貌似都在解答:如何用编程填色,而不是如何用编程填出和谐的!和谐的!和谐颜色! 如何填充和谐的颜色,是个非常复杂的问题,人都很难学会,何况计算机。至少我溜达了下其他答案,感觉大多都属于「如何气死我的设计师朋友」系列。所以我决定先讲「如何帮助程序员朋友快速学会配色」再说编程的事。 关于如何配色的基本理论,我在另外一篇回答写了一些设计师是如何从艺术中借鉴设计思维的事:怎么看待 Michael Kors 这样的设计师品牌抄袭的行为? - SysyCode 的回答 主要围绕以下三点回答: 1、设计之间的 copy 关系,注:这种 copy 不一定就是恶性的。 2、时尚设计是如何从上流影响到淘宝爆款的? 3、艺术家是如何影响上层时尚设计的?艺术又是如何对我们以及我们的日常生活产生影响的。 其中也写了设计师从艺术作品中借鉴配色的例子。 不过还有一个更简单的适合程序员朋友的方法,那就是抄啊。 好的艺术家抄袭创意,伟大的艺术家窃取灵感——毕加索 欢迎去 Dribbble 里找。Dribbble 里每一个设计图都提炼了设计师的配色,都很棒。 比如: 点旁边的: 比如绿色: 看,直接往代码里放就可以了。如果你是前端工程师,这个办法会非常受益。不知道怎么配色的时候就按照这套提炼过的颜色来,色块所占比例也尽量差不多,效果应该还不错。 在这里我不得不说的是:大多数没有经过专业绘画训练的人,其实是不具备「配色」能力的。配色也是有方法论的,也是一个缜密布局的过程。会与不会,就是从 0 到 1。也有可能你没学习过,配出来很好看,但并不代表具有方法论。 所以,借鉴是个好路子。Dribbble 上的资源都很棒!说不定可以挑选一些出来建立库,然后给《秘密花园》填色。 关于如何编程,知友 @Thinkraft 已经解决了,这是他的回答:可否通过编程为《秘密花园》填充出和谐的颜色? - Thinkraft 的回答 以及他的结果(已得到作者授权): 这是我看到的目前为止最棒的版本,作者的思路是随机填色。虽然作者有提前调整过色彩亮度的下限,但仍然可以看到颜色之间的饱和度不太匀称,就好比有些地方是梵高色,有些地方是莫奈色,互相有些冲突。 也许在走向代码时,需要思考的问题还有很多。让我们先来模拟一下,如果是手绘,需要思考的一些基本问题。 面对这张线稿,我们会去想: 1、先涂哪里? 比如:先涂树叶。 2、树叶是什么颜色? 绿色。 3、一盒铅笔那么多绿色,该图哪个绿色? 好吧,随便挑个自己喜欢的吧。 4、咦,旁边貌似还有别的类型的树叶,是不是该换个绿色? 好吧,随便换个绿色试试。 到这里,如果你没有接受过专业绘画训练,关于「如何把颜色涂和谐」就已经开始要出问题了。小白选手选的是「不一样的绿色」,高手则是在选「灰度」「冷暖对比」「全盘布局」等等等等,其中任何一样都是一个复杂的抉择。比如「灰度」,什么是「灰度」? 比如,以下是一张莫奈的作品: 现在我把它去色: 要是没看过原图的话,还以为背景就一个色呢。这就是传说中的「高级灰」,如果你在美术色彩考试中能整出一张高级灰出来,那绝对是高分无忧了。(注,本条不可逆推) 关于高级灰的百科定义: 在水粉画中高级灰特指 一个色系或一组色,色彩经过调合,纯度通常偏低,给人的感觉和谐而不是单独一个色。 它柔和,平静,稳重,和谐,统一,不强烈,不刺眼,没有冲突,色彩内含的元素是复杂的而非单纯的。 把这句话放出来是想说,要想搭配和谐的配色,真的很难。把这些都总结到位了,并提出合理的算法,也许离这个问题的终极答案会近一点。 除了这些,我们在填色过程中还会思考:不同颜色应该填在哪里?毕竟涂色书那么细密,如何深浅搭配、疏密有张才会好看?而且,上面纹理不管多么细致,我们也是可以一眼看出具体形象的,花、猫头鹰……如果是随机填色,会不会成为《秘密狗》《秘密鬼》《秘密犊子、秘密猹》?这都是需要考虑的问题。个人觉得,好看的填色,大多是那些懂得如何留白的作品。那这个问题是不是就又更复杂了,中国绘画的最高境界就是「留白」,不仅是审美,还有哲学思想在支配技法,这个又该怎么去算? 一开始看到这个标题的时候,我是很排斥的。它似乎在探讨一种如何把艺术规则化的事,是非常折损美感的。 最近我做了一个试验,希望用「算法」的方式来设计纹理。同一种算法,用电脑绘制,和我自己手绘,试图探讨这其中的差异:人的主观审美,对作品的呈现到底有多重要? 起因是因为近期我又看了凯文凯利的《失控》,在《三步轻松繁育艺术杰作》中写道: 进化主义将是当代艺术发展的下一个阶段。借用变异和有性繁殖的概念可以催生这门艺术。 人工进化作品的版权问题还处于法律真空中。谁将受到保护,是繁育出作品的艺术家还是编写繁育程序的艺术家?将来,律师可能要求一个艺术家记录下创作进化作品所遵循的轨迹,以此证明他的作品并非复制或归属于形式库的创建者。 前年读到这些话的时候,完全无感。直到今年 Google 搞出了个 Deep Dream(一个人造计算机大脑,可以通过它的想象来画图),突然就有所警觉了。按照凯文凯利的理论,以前我们用传统方法搞艺术创作,是「1+1=2」,「2」就是作品,且是可控的。人工进化作品就是「1+1= 星辰」。 于是我又去看了下 Deep Dream: 天,说好的星辰呢?满眼狗脑子。为了让大家愉快地看答案,我挑了一张轻柔点的,有兴趣的朋友可以去搜搜,小心吓死宝宝哟~ 于是我就很好奇,人画 VS 电脑画,区别在哪里? 首先,我在 Generative Design 上去下了个代码,用 Processing,搞了个这个: 大概就是我鼠标画曲线,它能跟着出直线,颜色可换。 然后,对它的代码进行了下总结,设计了一个适合手绘的「算法」用手绘的方式来呈现一下。设计过程中,我已经基于自己的审美有所改进了。于是我画了这些东西: (做成手机壳效果是因为,感觉纹理需要有所依附,效果会好些) 以下是具体步骤。 1、用铅笔画任意曲线。 2、沿着曲线画直线。规定:直线间间隔为 0.5 毫米;每条直线垂直于曲线的切线;在每条曲线的中点处直线的长度最长,且不超过 20 毫米;曲线起始点直线最短,且不短于 1 毫米;每两条线长度差为 1 毫米。 3、最神奇的设定:保持匀速画线频率,3 分钟画黑线,然后 30 秒画红线,轮流交替。 4、当在一段曲线中出现已画出最短直线但曲线还没结束的情况,则视为将该曲线拆分,重新开始排直线。其实我也是不小心画成了这样,做了新规定。 5、最长不超过 20 毫米。 6、按照以上规定,得到了这个结果。 7、觉得不过瘾,再来一层。 8、出现了更多交叉,丰富了层次。 9、第二层完成。 10、整体效果。发现几个很有趣的事:(1)过程中并不知道最终会得到什么,也许这就是 KK 说的图像的自我进化吧。(2)因为手绘不如电脑来的精确,反而更加生动。想起小时候学钢琴,如果遇见连续相同音,老师会要求切换指头来弹,故意制造差异,让音色更生动。由此我想:在各种仿真技术里,不停的去通过模拟的办法使之更逼真,也许有更好的办法,那就是制造瑕疵。(3)不论算法如何规定,在主观上都会有再创造,比如,我觉得一个区域黑色太多了,我会主观希望红色快点出现,就会下意识影响到我的画线频率。也许这也是人与机器不同的地方,人工智能该怎样调整呢?思考着也是很有趣。 先是代码画,再是手绘,体会到了非常有趣的东西: 1)大家也看到了,我规定了算法,但瑕疵特别多。比如,我规定每条直线必须是曲线的法线,然而几乎没做到。但这并没有影响最终的效果。 电脑画的就是电脑画的,天生带有一种冰冷的感觉。就像我举的弹钢琴的例子,市面上到处可见自动钢琴,它一定比任何一个人去弹都更精准,五线谱怎么标就怎么弹。也恰恰就是因为这种精准,让它无法成为钢琴家。人的主观差异,带来了人性,朗朗和李云迪的表达方式就很不一样,但他们都是很棒的钢琴家。 2)过程中,我的主观性时不时会跳出来。就比如之前说的,我觉得某个区域黑色太多了,希望红色快来,然后会化作行动,对结果造成影响。这种主观的修正,是计算机目前还不具备的,但为什么我会产生强烈的主观意愿:这个地方必须是红色了,不然不够美。这就打破了算法。整个过程中,大概有 15% 的时候,这种强烈的主观意愿会跳出来干扰原先的设定。 我很喜欢自己加的那条 3 分钟黑笔 30 秒红笔的规定。如果是设计代码,肯定不会是这样,即便要换颜色,也是别的算法。这也许就是人和机器的不同吧。 3)看了不少 Generative Art,Processing 等案例后,除了少数特别精美的以外,我觉得大多作品的呈现让我觉得在审美上,和 Dos 下的海龟时代相比,突破并不大(我说审美)。我开始想:从代码到图像,中间是什么东西在影响这个思维?从古埃及时期开始,西方艺术就在试图对「造型」总结一套比例,希望通过这个比例达到最美的艺术创作。到了古希腊,这种追求更是被发扬了,这也基于他们本身的价值观与哲学:相信所有问题都能去通过数学来解决。这也不难理解,比如唐卡,也是有严格的比例规定,以此保证造型的统一,我想这里面也有审美的考虑。总之我想说的是,目前这种创作形式,从代码到作品,是欠缺一个内在逻辑的。我手绘,我有主观逻辑,这个逻辑就是我这个人,所有关于我的一切形成的审美。那计算机呢?目前来说,计算机还没那么聪明,形式已经具备了(谷歌那个人造大脑 Deep Dream 画的图),但审美这一部分它还没学会(很想喂它一本《詹森艺术史》啊),至少目前是不符合当下对美的定义的。那在这个空档期里,人应该发挥怎样的作用?这才是真正需要思考的问题。 在我按照算法手绘的时候,最大的感触就是:越是去想要规则化,越是能体会到人本身的主观能动性。一种自我的力量在变得强大。 总之,这是一个非常奇妙的过程。既体会到了计算机的冰冷,对应的,还有人性的美妙。而且比以往感受到了更多可贵之处。 在当下,即便 Generative Design 已经登上历史的舞台,但最终的作品呈现还是得靠人工来定夺审美。人之于作品是一个互动的过程,每一笔画下去都是一种交流、思考与权衡。而电脑画,无论最终的结果多么花俏,多少有些金玉其外败絮其中的感觉,不得不感叹,人的思想是多么的奇妙。 知友 @符博 在他的回答里,引用了一位 Stanford PHD 在 Siggrah ( 图像处理最高会议 )上的论文(http://graphics.stanford.edu/~mdfisher/Data/patternColoring.pdf)至少目前看来,要想找到这个问题的答案是不现实的。但也是一个非常有趣的探讨。 这个试验后,我再来想「可否通过编程为《秘密花园》填充出和谐的颜色?」这个问题。个人觉得思路是: 1、还是得「以人为本」的去找到一种相对美观的表达方式(下面会体现)。 2、代码落地。 经过之前的思考后我发现,代码落地,反而是个简单的步骤。如何去定形式,真的好难。 我的作业如下: 我平时也很喜欢画线条画。 如: 然后我用某软件处理了下: 水彩风格,是我找到的形式。关于填色我在想,为什么就是要挨个依照那些小空空填呢?个人认为,《秘密花园》的理想填色法就是拿着水彩颜料(多加水)然后往纸上甩 or 泼,然后换点颜色继续一层层泼。不要笑,这个是严肃的技法。出来效果也会很棒的。 所以我的思路是:把图像矢量化后,生成一个水彩质感的背景来实现填色。既可以凸显主题,又具备了艺术风格。至少绝对不会变成《秘密鬼》。 同样办法,以这张我画的刘看山为例,还可以得到: 这种风格可作为一种探讨吧,它代表了我的个人审美在呈现时给出的形式,我也是写着写着答案随手去弄出来的,欢迎大家多提意见。这是用 PS 做的 Demo,编程的话已经跟工程师讨论过了,不难实现。 关于这个问题的解答,可能我不能一步就上到智能填色,且和谐。但首先,开发几个靠谱的模板出来还是可以的。不要一下子就觉得很 Low 了,也正因为这样,探索起来才更有意思呀。 我认为,编程技术要有,人为的审美导向也是需要的。如我之前所说,在被人工智能占领之前,人工智能能创造艺术之前,我们应该起到什么作用呢?也许我们还有更精彩的答案呢。 是的是的,艺术思维、技术思维都是需要的。 最后,非常赞同 @段苗 的想法,组织一个「Hacker's Secret Garden」的 Hackathon 会不会很棒?我相信,越是在有规则的情况下,越是会迸发出意想不到的生命力。 查看知乎原文