【杂项】python将图片转成Excel单元格显示;Excel生成图片

该文章介绍了一个使用Python脚本将图片转换为Excel表格并用各像素颜色填充单元格的方法。通过openpyxl库处理Excel,PIL库处理图片,将图片按比例缩放后,将每个像素的颜色应用到对应Excel单元格中,最终保存为Excel文件。
摘要由CSDN通过智能技术生成


用python做的小玩意,可以在Excel单元格填充颜色,所有像素组合成一张图片。

思路

  1. 读取图片
  2. 获取图片像素信息
  3. 设定在Excel里显示的像素量。保留长宽信息
  4. 缩放图片
  5. 活的缩放后图片每个像素点的颜色值
  6. 依次为表格添加颜色
  7. 设置表格行高列宽
  8. 保存

代码实现

from openpyxl import Workbook
from openpyxl.utils import get_column_letter
from openpyxl.styles import PatternFill, Color
from PIL import Image
import os

# 设置路径
path='D:/desktop/'
os.chdir(path)

# 打开表格
workbook = Workbook()
worksheet = workbook.active

# 读取照片
im = Image.open("longjs.jpg")
im_width = im.size[0]
im_height = im.size[1]

# 将照片适度缩放,像素太多影响生成
target_height = 100
target_width = int(target_height*im_width/im_height)

# 实行缩放
im_resize = im.resize((target_width, target_height),Image.Resampling.LANCZOS)

# 给每个表格填充颜色
pix = im_resize.load()
for row in range(1, target_height):
    for col in range(1, target_width):
        cell = worksheet.cell(column=col, row=row)
        pixpoint = pix[col - 1, row - 1]
        pixColor = "FF%02X%02X%02X" % (pixpoint[0], pixpoint[1], pixpoint[2])
        fill = PatternFill(patternType='solid',fgColor=Color(rgb=pixColor))
        cell.fill = fill
    # 设置行高
    worksheet.row_dimensions[row].height = 6

# 设置列宽
for col in range(1, target_width):
    worksheet.column_dimensions[get_column_letter(col)].width = 1

# 保存结果
workbook.save(filename='longjs.xlsx')

运行结果

原图片:
原图

输出:
输出

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

longjs17

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值