Python 将小姐姐画在Excel上

准备:

  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()

为了使效果更好,可以更改行高,行宽 或者缩放 。

本次效果如下:

 

 

 

posted @ 2019-03-07 15:03  绯叶阿卡丽  阅读(706)  评论(0编辑  收藏  举报