美文网首页
在excel表格里画像素图【程序画图 | 按键精灵】

在excel表格里画像素图【程序画图 | 按键精灵】

作者: 布尔的布 | 来源:发表于2020-10-13 15:43 被阅读0次

    在网上,能够看到一些正常图片转为像素图的软件。

    对此很感兴趣,打算写一个这样子的软件。

    编写像素图生成软件,就要了解图片的组成原理,可以学习到一些图片的像素处理知识。


    表格画像素图【作品视频】

    一、前期思路

    图片输出界面需要方方正正区域,为了好玩点,就选择办公软件的表格区域。

    编程语言,可以选择办公软件的VBA,但是还是为了好玩点,就选择键鼠模拟软件,来模拟鼠标操作,把像素一点一点的粘贴出来。减少对编程环境的搭建,不考虑程序的执行效率,不作为正式软件,就选择按键精灵作为编程软件。

    ps:后来发现对效率来说,是一个大坑,画一幅图就要好几分钟,甚至要好几十分钟,只能在后面想办法优化

    编程环境:按键精灵 + 表格软件(office或者wps都可以)

    二、像素生成软件界面

    做一个软件界面,主要方便实现图片路径的选择、图片参数的设置、以及图片的效果预览。

    (表格画图_主界面)

    三、程序部分

    1.主要思路

    (表格画图_编程思路)  

    原来打算画彩色图,使用键鼠模拟操作,更改表格单元格的背景色,但是步骤太麻烦了;

    后面想到了利用粘贴功能,居然不能粘贴彩色的字符,最后只能画单色图。

    (ps:如果使用VBA就不会存在这种问题了,可以直接操作单元格的格式)

    2.程序编写

    1) 提取图片像素点

    提取图片的每个像素的RGB值很简单,只要一个方法就能获取一个数组。

    其方法内部操作就是从图片的左上角开始,一行一行地存入这个数组。(数组里面的每个元素存放的就是每个像素的颜色值)

    每一个颜色值是由ARGB四个值组成的(A可以理解为透明度),后面需要从中提取RGB。

    (程序部分_提取图片像素)

    2) 转化为单色图

    利用与运算将RGB值从ARGB里面提取,然后将RGB转为亮度值(也就是灰度值)。

    将亮度值的大小与阈值(人为设置)判断,可以分为黑色和白色。

    (程序部分_转为单色像素)

    3)表格画图操作

    读取图片的一行像素,判断像素的颜色,如果是黑色就添加字符,如果是白色就不填加。

    判断完一行像素值后,将整行字符串粘贴到表格区域里面。

    (为了提高效率,一行一行地粘贴字符,而不是一个个单元格地处理)

    (程序部分_画图操作)

    四、画图效果

    (实际效果_填充方块) (实际效果_填充自定义字符) (实际效果_条件格式)

    五、后面

    整个程序算是基本达到目标,能够画出像素图,整个图片处理也没有太大的问题。

    整个程序从后期来看,有两个难点:

    a)提取图片的像素、b)表格区域字符的填充

    问题a是一开始就会面临的问题,也是花费了整个项目几乎一半的时间,后面改变思路利用VBS关键词查找资料,到微软官网查阅参考文档才解决问题。

    问题b只是会影响输出结果,原先计划输出彩色版本图片,但是由于无法解决控制单元格的颜色(不管是背景色还是文字颜色),干脆就输出单色字符就行。

    【结束】

    相关文章

      网友评论

          本文标题:在excel表格里画像素图【程序画图 | 按键精灵】

          本文链接:https://www.haomeiwen.com/subject/xymvpktx.html