用excel做一幅像素画

开发背景

  看到网上有人发教程,如何通过在excel里设置单元格颜色画一幅画,感觉手工做太复杂,就打算用程序实现一个。

开发运行环境

  python 2.7

  PIL

  xlsxwriter

用法

  python image2xlsx.py somefile.png

  会在somefile.png目录下生成一个somefile.png.xlsx的文件

效果预览

其他说明

  最好先使用小图,100*100左右,大图很慢。

  xlsxwriter对excel长宽的控制不是很好,可以在程序里微调。

 

源码下载

  http://files.cnblogs.com/files/zzrom/image2xlsx.py.zip

  

转载于:https://www.cnblogs.com/zzrom/p/5546918.html

要使用Python生成Excel像素画,可以使用openpyxl库来读取和编辑Excel文件,同时使用OpenCV库来处理图像。以下是一个示例代码的步骤: 1. 导入所需的库:import openpyxl, cv2, openpyxl.styles.PatternFill 2. 加载图像:使用OpenCV的cv2.imread函数加载图像文件。 3. 获取图像的RGB通道:使用图像数组的切片操作分别获取红色通道(R)、绿色通道(G)和蓝色通道(B)的像素值。 4. 创建Excel文件:使用openpyxl的load_workbook函数加载现有的Excel文件(如果有)或创建一个新的Excel文件。 5. 获取工作表:使用wb.worksheets[0]获取第一个工作表。 6. 循环遍历像素值:使用两个嵌套的for循环遍历每个像素值。 7. 创建填充样式:根据每个像素的RGB值创建填充样式,并使用PatternFill函数设置填充类型为'solid',前景色为RGB值。 8. 应用填充样式:使用工作表的cell方法选择要应用填充样式的单元格,并将填充样式赋值给单元格的fill属性。 9. 保存Excel文件:使用wb.save函数保存Excel文件。 以下是示例代码: ``` from openpyxl import load_workbook import cv2 as cv from openpyxl.styles import PatternFill image = cv.imread("your_image.jpg", 1) B = image[:, :, 0] G = image[:, :, 1] R = image[:, :, 2] fileName = "output.xlsx" wb = load_workbook(fileName) sheet = wb.worksheets[0] for c in range(1, len(B[0])): for r in range(1, len(B)): d = str(hex(R[r][c])).lstrip("0x").upper() e = str(hex(G[r][c])).lstrip("0x").upper() f = str(hex(B[r][c])).lstrip("0x").upper() while len(d) < 2: d = "0" + d while len(e) < 2: e = "0" + e while len(f) < 2: f = "0" + f RGB = d + e + f fill = PatternFill(fill_type='solid', fgColor=RGB, bgColor="FFFFFF") sheet.cell(row=r, column=c).fill = fill wb.save(fileName) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值