zoukankan      html  css  js  c++  java
  • 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()

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

    本次效果如下:

     

  • 相关阅读:
    当tp5项目上传到服务器之后遇见的各种bug(不定期更新)
    解决LAMP下 服务器IP无法访问
    thinkphp5多图上传+同时删除本地文件
    from提交表单后 数据提交到后台 但不跳转页面 非ajax 用iframe
    window7 安装sass和compass
    开源操作系统课程设计
    Hadoop伪分布式搭建实验总结
    排序集合
    快排
    邻接矩阵
  • 原文地址:https://www.cnblogs.com/x0216u/p/10489713.html
Copyright © 2011-2022 走看看