像素级别画画 您所在的位置:网站首页 用excel画像素画 像素级别画画

像素级别画画

2023-05-10 08:58| 来源: 网络整理| 查看: 265

你伤害了Word心,还Excel而过~

说到Excel,大部分人可能觉得没什么神秘的,不就是画个表,最多写几个函数优化吗。实在是too young too simple,前几天77岁的日本艺术家Tatsuo Horiuchi(崛内立男)用微软的Excel表格软件创作的画作走红网络,老先生的作品意境优美,细节精妙让人佩服的五体投地。

看到如此精美的作品,相信大家也一定想亲自试一试,但是用Excel画画极其耗费时间,因为需要从零开始一个个的渲染像素点。我们平常用的智能手机基本上都在 1000w 像素以上了,也就是有1000万个像素点,专业的相机像素更多。而且每个点又有RGBA(红绿蓝色和透明度)的信息,光是RGB中的颜色信息就有 1600多万种颜色(虽然Excel并不支持这么多颜色),这种极为庞大的工作非常不适合我们这种新世纪的有(懒)志(货)青年。所以我们又要搬出编程语言大杀器了。

那么问题来了,这么多编程语言,选哪一个比较好呢。C语言偏向底层,不适合干这种活;java还需要装jdk一大把东西,太麻烦;C++我还没有学到头发掉光;php虽然有丰富的函数,但是最好的语言怎么能随便拿出来呢。思来想去还是Python这个妖艳的小骚货最适合,语法清楚,代码少,还有Pillow这种简单易用的图像处理库,天选之语言啊。

话不多说,开始干。首先通过pip命令安装Pillow模块。然后开始敲代码。

思路很简单,通过getpixel()方法获取图片像素点的RGB值,并迭代输出写入文件。

运行程序

生成的txt如图

打开Excel,把这个文本文档导入进去

导入过程中一定要注意所有列以文本格式导入数据,不然Excel会默认以货币形式显示,而忽略逗号。

打开后,进行一些简单的查找替换把括号和空格删掉,如下图,再把列宽和行高设置为一样的,这样每个单元格就是一个正方形像素。

接下来要将单元格里的RGB值转换为单元格的填充颜色,这个庞大的工作不可能手工完成,于是撸一段VBA代码,交给宏来完成。

中途我软件挂掉了,又重新打开了自动备份的文档,VBA渲染的单元格很多,速度比较慢,大概半分钟后运行结束,效果如下(下面那张是原图)

放大后细节是这样的

像素越低,渲染的速度越快

最后放一张表情包

哈哈哈,说是折腾Python,感觉大部分还是在折腾Excel。电脑渣渣性能中途渲染时不时软件崩溃,不过只要性能足够,可以还原足够精细的画面。

上好的把妹神器啊|・ω・`),也算是程序员特有的浪漫了。要不要考虑给心仪的他/她送一幅画呢(。•̀ᴗ-)✧

PS:VBA给了我一种JavaScript的感觉,给个环境到处运行,非常强大的办公利器。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有