如何用代码画出一幅好看的画

您所在的位置:网站首页 ak47字符画 如何用代码画出一幅好看的画

如何用代码画出一幅好看的画

2024-07-14 16:47:25| 来源: 网络整理| 查看: 265

前言

随着计算机技术的逐步发展,借助计算机强大的能力进行绘画操作,已经变得非常容易。绘画作品的水平也是越来越高,下面就来看看用编程语言绘画,能搞出什么有意思的东西,相比人类的创作又有哪些值得我们思考的地方。

绘画

用代码输出类似绘画的内容,最最原始的恐怕就是直接使用 print 函数了。

print 输出字符 def do_print(): print(''' へ     /|   /\7    ∠_/   / │   / /  │ Z _,< /   /`ヽ  │     ヽ   /  〉   Y     `  /  /  イ● 、 ●  ⊂⊃〈  /  ()  へ    | \〈   >ー 、_  ィ  │ //   / へ   / ノ<| \\   ヽ_ノ  (_/  │//   7       |/   >―r ̄ ̄`ー―_ ''')

这个方法执行后,就可以在控制台看到下面这幅可爱的皮卡丘画了。

请添加图片描述

这种做法,可以说是完全没有什么技术水平了。想要画什么内容,还得预先编排字符,太麻烦了。于是便有了升级版。

图片转字符

这种用图片转字符,看似没有什么意义,但其实有时候可以创作出意想不到的作品。比如前一阵子的顶流冰墩墩。

在这里插入图片描述

这种做法的思路总的来说,就是把图片的抽样图片的像素信息,然后将像素信息中关键的亮度信息用特殊的字符串进行打印,效果就是我们最终看到的样子。

public static void printImage(BufferedImage image) throws IOException { final char[] PIXEL_CHAR_ARRAY = {'W', '@', '#', '8', '&', '*', 'o', ':', '.', ' '}; int width = image.getWidth(); int height = image.getHeight(); for (int i = 0; i int rgb = image.getRGB(j, i); Color color = new Color(rgb); int red = color.getRed(); int green = color.getGreen(); int blue = color.getBlue(); // 一个用于计算RGB像素点灰度的公式 Double grayscale = 0.2126 * red + 0.7152 * green + 0.0722 * blue; double index = grayscale / (Math.ceil(255 / PIXEL_CHAR_ARRAY.length) + 0.5); System.out.print(PIXEL_CHAR_ARRAY[(int)(Math.floor(index))]); } System.out.println(); } }

更多具体实现可以参考 字符作画,我用字符画个冰墩墩 。

使用 Python-turtle 库作图

下面这几幅知乎用户的回答,可以说是非常有水平了。

import random import turtle from turtle import * t = turtle.Turtle() w = turtle.Screen() def tree(branchLen, t): if branchLen > 3: if 8 'imgUrls': ['https://wenxin.baidu.com/younger/file/ERNIE-ViLG/89df26b9853d837d331d626ffa62828fex', 'https://wenxin.baidu.com/younger/file/ERNIE-ViLG/89df26b9853d837d331d626ffa62828fi4', 'https://wenxin.baidu.com/younger/file/ERNIE-ViLG/89df26b9853d837d331d626ffa62828f5q', 'https://wenxin.baidu.com/younger/file/ERNIE-ViLG/89df26b9853d837d331d626ffa62828f30', 'https://wenxin.baidu.com/younger/file/ERNIE-ViLG/89df26b9853d837d331d626ffa62828fv9', 'https://wenxin.baidu.com/younger/file/ERNIE-ViLG/89df26b9853d837d331d626ffa62828fa2']}

可以看到速度还是很快的出不多一分钟就搞定了。可以预览一下结果

可以看到还是很厉害了,水平应可以赶上专科院校的毕业生了,但是作画速度那可是降维打击啊。

使用 ERNIe-ViLG 搭配自定义的关键字可以生成 水彩、油画、粉笔画、卡通、蜡笔画、儿童画等多种风格的图片。

可以再试一下水彩画风格的天龙八部 。

是不是还挺有感觉的。

DALL·E 2

当然,说到 AI 绘画,国外大公司也有很厉害的。比如 OpenAI 公司 的 DALL·E 2 。

比如以写实风格创作一个宇航员骑着一匹马的图像

请添加图片描述

在换个铅笔画风格的

请添加图片描述

使用 DALL·E 2 可以根据创作风格,更多关键字由 AI 创作出非常有想象力的作品。可以到 DALL·E 2 的主页查看更多更详细的内容。

总结

其实用代码直接绘制图形,还有很多其他方案。比如大名鼎鼎的 MATLAB ,可以创作出非常精良的数学几何图形。

但是比较一下上面的这几种方案,可以说 AI 作画的水平,一下子提升了好几个层次。创作需要的输入越来越明确,越来越简答,越发的人性化。但是输出的内容,却越发的开始接近甚至超越了人类的水平。

参考文档 字符作画,我用字符画个冰墩墩大家用Python-turtle库作图画出过哪些漂亮的树哇 ?


【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭