【发布时间】:2021-11-10 19:34:11
【问题描述】:
我有一堆带有图像的电子表格,其中一些具有不同的大小。
我想将所有图像的宽度更改为它自己的高度。
我已经尝试过的:
# For each spreadsheet in the folder...
ws = wb.worksheets[0]
for image in ws._images:
image.width = image.height
但是这段代码根本行不通。
【问题讨论】:
我有一堆带有图像的电子表格,其中一些具有不同的大小。
我想将所有图像的宽度更改为它自己的高度。
我已经尝试过的:
# For each spreadsheet in the folder...
ws = wb.worksheets[0]
for image in ws._images:
image.width = image.height
但是这段代码根本行不通。
【问题讨论】:
我的第一个问题是您是要裁剪还是只是调整大小,而不关心图像的原始纵横比?
您可以使用PIL。如下所示。
更新答案
from PIL import Image
...
for i in range(1, sh.max_row+1):
for j in range(1, sh.max_column+1):
cell_obj = sh.cell(row=i, column=j)
if image_loader.image_in(cell_obj.coordinate):
image = image_loader.get(cell_obj.coordinate)
w, h = image.size
image = image.resize((h,h))
image.save("image" + cell_obj.coordinate +".jpg")
如果您需要帮助从 Excel 表中解析问题,请添加更多详细信息。
【讨论】:
img = Image.open(image) 行收到以下错误:AttributeError: 'Image' object has no attribute 'read'
print(image) 时你会得到什么?