准备:
1. 一张小姐姐的照片
2. python 环境
3.需要导入的库:PIL,xlsxwriter
原理:
1. 读取小姐姐的图片 转化为rgb 格式
2. 将颜色填充到对应的表格上
图片:
代码很简单如下:
from PIL import Image import xlsxwriter # 颜色转换函数 def color(value): digit = list(map(str, range(10))) + list("ABCDEF") if isinstance(value, tuple): string = '#' for i in value: a1 = i // 16 a2 = i % 16 string += digit[a1] + digit[a2] return string elif isinstance(value, str): a1 = digit.index(value[1]) * 16 + digit.index(value[2]) a2 = digit.index(value[3]) * 16 + digit.index(value[4]) a3 = digit.index(value[5]) * 16 + digit.index(value[6]) return (a1, a2, a3) # 路径 path = r'd:\girl.jpg' img = Image.open(path) #img = img.resize((189, 152)) # 转为rgb imgL = img.convert("P").convert("RGB") pix = imgL.load() w, h = imgL.size workbook = xlsxwriter.Workbook('picture.xlsx') # 新建excel表 worksheet = workbook.add_worksheet('sheet1') # 新建sheet(sheet的名称为"sheet1") for j in range(w): for i in range(h): color_cell = color(pix[j, i]) # 添加样式 sty = workbook.add_format({'bg_color': '{}'.format(color_cell) }) # 写入 worksheet.write(i, j, '', sty) # 设置行高 worksheet.set_row(i,1) # 设置列宽 worksheet.set_column(0,w-1,0.4) workbook.close()
为了使效果更好,可以更改行高,行宽 或者缩放 。
本次效果如下: