用Excel画像素画(内附源码,可直接下载)

2019-05-03 10:41:23 6点赞 15收藏 18评论

Excel不止是一款电子表格软件,它还能画画。比如,日本一位七十多岁的老爷爷堀内辰男坚持十七年用Excel画画,创作了大量惊艳的作品,还获得了“Excel自动图形艺术大赛”冠军,其作品也被群马艺术馆收藏。

用Excel画像素画(内附源码,可直接下载)

在豆瓣上还有一个话题叫”用Excel画一幅像素画”。

大家有兴趣可以看看,沙雕网友的动手能力还有脑洞总是让我自叹不如。

用Excel画像素画(内附源码,可直接下载)

在佩服老爷子的耐心和艺术创造力的同时,在感叹网友怎么这么细心细致(闲得无聊)之后,我也在想,Excel话像素画的原理,其实是完全可以通过编程来实现的吧。

最直接最简单的就是VB了,当然码农们热爱的Python也是可以的,拿PIL和xlwings库写个程序。

我比较懒,直接用了MATLAB,读取函数创建Excel对象进行交互都很简单。在效率方面应该比Python的接口效率更高点。

我展示下最后完成的效果:

图片处理届女神--Lena图片处理届女神--Lena

童年男神--Mario童年男神--Mario


放个我分享到GitHub上的源码:

https://github.com/Hbxuan/PixelArtWithExcelByMATLAB

有需求的可以自取。



使用流程

1.第一步当然是,先下载啦。有安装了MATLAB软件的朋友可以直接下载main.m文件,或者打开之后复制粘贴代码,然后自己新建一个文件。

2.没有MATLAB的朋友也不用担心,我把程序打包成了一个exe文件,也就是下载链接里的main.exe。不过,下载之后如果要运行这个文件,还是需要在电脑上安装MATLAB Runtime。

下载链接在这:https://ww2.mathworks.cn/products/compiler/matlab-runtime.html

用Excel画像素画(内附源码,可直接下载)

3.下载之后,有MATLAB的怎么运行不用我多说了吧。运行exe文件也很简单,直接双击打开就行。不过启动的时候有点慢。

用Excel画像素画(内附源码,可直接下载)

4.然后选择图片文件,一定要是图片哦。

用Excel画像素画(内附源码,可直接下载)

5.选择完之后,就是输入自己所需要的像素画的大小,输入之后你就能看着Excel文件自动在你眼前打开,然后自动画画。

一般来说像素大小越小,分辨率越低,就越像像素画。

比如说,我这个原图是大小是700*700像素,下面是我分别画成100*100和300*300时候的样子:


我近视了我近视了

我痊愈了我痊愈了


之后有运行遇到问题的都可以跟我沟通。

留言就行,我会及时回复的。

(售后满分)

用Excel画像素画(内附源码,可直接下载)

摸鱼是人类进步的根源。 ----沃寄几朔德


展开 收起
18评论

  • 精彩
  • 最新
  • 哇又是一篇干货

    校验提示文案

    提交
    谢谢小姐姐

    校验提示文案

    提交
    收起所有回复
  • 小兄弟真厉害

    校验提示文案

    提交
    大兄弟更强

    校验提示文案

    提交
    收起所有回复
  • 大哥为什么我运行到一半就不动了 [无语]

    校验提示文案

    提交
    问题描述太不清楚了……我也不知道

    校验提示文案

    提交
    收起所有回复
  • 错误使用 Interface.000208D8_0000_0000_C000_000000000046/Range
    错误: 对象返回了错误代码: 0x800A03EC

    出错 main (line 83)
    handle.Range(range1).Interior.Color=hex2dec([b,g,r]);

    图片像素5000x104130 第一行跑完,就报错了 大佬求教 [哭泣] [哭泣] [哭泣]

    校验提示文案

    提交
    呃10万可能已经大于Excel的列数了

    校验提示文案

    提交
    应该是接口问题,Matlab无法打开excel咯

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 错误使用 Interface.000208D8_0000_0000_C000_000000000046/Range
    错误: 对象返回了错误代码: 0x800A03EC

    出错 main (line 83)
    handle.Range(range1).Interior.Color=hex2dec([b,g,r]);

    图片像素5000x104130 跑完第一行 ,就报83行出错了 求教大佬 [哭泣] [哭泣] [哭泣]

    校验提示文案

    提交
    可能就是excel行列数的问题 [观察] ,有最大值

    校验提示文案

    提交
    收起所有回复
  • 请问这个问题如何解决呀
    未定义与 'uint8' 类型的输入参数相对应的函数 'imresize'。

    出错 main (line 34>
    I=imresize(I,[str2double(answer{1}>,str2double(answer{2}>]>;

    校验提示文案

    提交
    啊你改过代码吗?时间久远不太记得代码了,应该是图片读取后像素值是uint8,需要进行转换

    校验提示文案

    提交
    收起所有回复
  • 这个exe文件下载界面无法访问求解决_(:з」∠>_

    校验提示文案

    提交
    大概是需要科学上网了……你能上GitHub吗。

    校验提示文案

    提交
    收起所有回复
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
目录
15
扫一下,分享更方便,购买更轻松