获取 文章资源,可以关注公众号:AI悦创,联系号主获取

Excel 和图片类似

Excel 文件,单元格支持编辑内容和设置背景色。

一张图片,都是由密密麻麻的像素组成,且每个像素都是一个 rgb 的颜色值。

那是否可以读取图片每个像素的颜色,填充到 Excel 中,就可以做到 Excel 中画图。

这么想,是可以的。理论上也是可行的,那接下来就开始写代码。

打开文件和图片

第一步,导入所需库,分别是 xlsxwriter 和图片的 Image 库。使用 xlsxwriter 的理由,是 xls 内容有限,图片的像素可是很多的,所以最好是使用 xlsx 格式。

import xlsxwriter
from PIL import Image

导入之后,准备图片,并读取图片的宽高,以及像素对象:

path = '1.png'
img = Image.open(path)
imgL = img.convert("P").convert("RGB")
pix = imgL.load()
w, h = imgL.size


使用 Image 读取图片对象,获取宽和高,以及 pix 这像素对象,通过 pix[1,1 ]拿到具体的颜色 RGB 值,然后转换成 16 进制的颜色值,进行背景色的写入。

准备一个特殊函数

现在打开一个 xlsx 文件,文件名任意,如下代码:

wb = xlsxwriter.Workbook('demo2.xlsx')
ws = wb.add_worksheet('sheet1')

然后找一个 RGB 转 16 进制的函数,因为 RGB 是 10 进制的,方式就是通过 hex 函数转换成 16 进制,然后加上 x 和 0,并全部大写,就可以了。如下函数:

def RGB_to_Hex(tmp):rgb = list(tmp)strs = '#'for i in rgb:num = int(i)strs += str(hex(num))[-2:].replace('x','0').upper()return strs

为什么一定要 16 进制? 因为 sheet 中,写入背景色时,颜色必须是 16 进制才可以。

读取和写入

下面就是循环的逐个单元格设置背景色,且不需要写入内容。如下代码:

for i in range(w):for j in range(h):rgb = pix[i,j]color = RGB_to_Hex(rgb)style = wb.add_format({'bg_color': '{}'.format(color)})ws.write(j,i,'',style)ws.set_row(j,1)
ws.set_column(0,w-1,0.5)wb.close()

代码思路:

  • 循环读取宽和高,读取到全部的分辨率节点
  • 然后通过 pix 读取指定 x,y 的 RGB 值,再转换成 16 进制的内容
  • 设置 style 样式,颜色值就是转换之后的 16 进制
  • 然后写入单元格,内容是空,颜色背景是 style
  • 循环内也要设置当前单元格的行高
  • 循环外,统一设置单元格的宽度

这是单元格的主要代码,写完后,关闭 workbook 即可。

查看像素画

读取图片的全部宽高,然后描绘到 Excel 中完成了。最后用图片的形式展示下文件的样子,如下图【使用 WPS 软件查看】:

使用 Excel 画像素画相关推荐

  1. PHP画像素直线,画像素画原来如此简单!绝对是手残党的福利

    [PConline 杂谈]你听说过像素画吗?最近网络上出现很多利用像素绘制的卡通图案,我们把这些称之为像素画.其绘画过程简单,不需要任何绘画的功底,可以说绝对是手残党的福利.但是对于像素画你可能会感觉 ...

  2. JS_小工具_自己写了一个画像素画的小工具

    自己抽空做了一个画像素画的小工具,界面比较简单,但也可以画着玩.呵呵. 有意思的地方在于可以把画的内容保存为一个数组,可以很方便地还原成图案... 主要的JS代码: //画板表格 var iconTa ...

  3. 【风农翻译】开始画像素画 #1

    完全小白起步指南 这篇文章是关于如何开始画像素画,专为从来没用过像素画软件,或者刚开始学画的人设计.这里我只会讲解最基本的东西,如何创建文件,设置画布尺寸,以及如何利用受限的颜色. 如果喜欢这篇文章, ...

  4. 多线程加速 Excel 画像素画

    提高效率 一张图片的分辨率,小点的有 50x50=2500 个像素,大的则有 1920*1080=2073600 个像素. 而且 Python 操作 Excel,逐个的给 Excel 单元格上色,还是 ...

  5. 用excel画像素画,和十字绣一样简单

    如果大家能看到这个帖子,那么应该已经见过像素画了.我们电脑上的图标都是像素画,在网络世界上,他无处不在,例如: 画一幅像素画需要的工具很简单,画图板就可以制作,甚至用excel就可以.         ...

  6. Excel实现像素画效果

    像素画就是一个个点构成,excel的表格天生就是无数个点,并且还可以涂色,正好合适! 图片获取每个点的RGB信息,可以使用point,也可以使用getpixel,但是这两种方法都奇慢无比.实际上poi ...

  7. 【风农翻译】开始画像素画 #8

    这是来自佩德罗・梅代鲁斯(Pedro Medeiros,@saint11)授权的一系列像素美术教程,由风农翻译整理. 佩德罗・梅代鲁斯最为知名的作品莫过于<塞莱斯特山(蔚蓝,Celeste)&g ...

  8. 熟悉PS的基本操作,以画像素画为例

    准备 去B站随便搜个学像素画的视频 一颗想闲下来的心 愿意浪费时间 工具 Adobe Photoshop 2021 (Prerelease) 配置 项目画布大小看自己需要 图层 要画的内容放在透明层 ...

  9. excel 画散点图 怎么设置图片的分辨率_Slynyrd像素画教程:像素画基础教程

    Slynyrd像素画教程:像素画基础教程 作者:Slynyrd[1] 翻译:三二 (转载请注明出处) 关注公众号:教你画像素画 微信号:pixelfish 微博:教你画像素画2014 在合适的条件下, ...

最新文章

  1. 漫画:垃圾男人分类图鉴
  2. Ubuntu常用翻译工具——星际译王StarDict
  3. python利用cookie模拟登录
  4. Hyper-v Server动态内存
  5. 图像处理理论(六)——Harris, Eigenface
  6. 正在这紧要关头的jdzyzwc
  7. 短视频就这样玩丢了底线
  8. mysql开启slowquery_log_MySQL slow_query_log慢查询日志配置详解
  9. WMS仓库管理软件操作流程是怎样
  10. 史上最全最实用网站来袭
  11. CE修改植物大战僵尸
  12. Matplotlib可视化图表
  13. 2013年12月甘肃省广播电台网络影响力排名
  14. 【世纪佳缘桌面V3.1.1正式版】聊天交流工具
  15. 跟谁学盈利神话已破,烧钱大战没有赢家
  16. 中国无人船/无人潜航器行业前景规划与发展动向分析报告2022-2028年版
  17. Lucenesolr
  18. 弹性法计算方法的mck法_SAM4E单片机之旅——9、UART与MCK之MAINCK
  19. 合资车型挂牌价20万以内带锁全时四驱 长安铃木维特拉越开越上瘾
  20. asp从服务器下载文件的几种方法

热门文章

  1. openmediavault安装
  2. HDU 4379 The More The Better
  3. 创业公司第三方服务精选(移动互联网版)
  4. [Unity3D] Unity3D连接安卓设备调试unity程序
  5. 微信web开发工具 移动设备调试
  6. ECCV 2022 | 超越MobileViT!EdgeFormer:学习ViT来改进轻量级卷积网络
  7. 计算机科学导论-绪论
  8. 几种常见的开源软件许可协议(GPL, LGPL, Apache License, BSD)
  9. 计算机拨打比赛策划书,电脑打字擂台赛活动策划书
  10. win10邮件同步出错