【问题标题】:Change existing image size in the sheet更改工作表中的现有图像大小
【发布时间】: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

但是这段代码根本行不通。

【问题讨论】:

    标签: python excel openpyxl


    【解决方案1】:

    我的第一个问题是您是要裁剪还是只是调整大小,而不关心图像的原始纵横比?

    您可以使用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) 时你会得到什么?
    • @gustavo 您还可以使用更多详细信息更新您的问题,添加您尝试从 Excel 等中提取图像的代码,我可以尝试进一步调试
    猜你喜欢
    • 1970-01-01
    • 2012-09-15
    • 1970-01-01
    • 2017-12-14
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    • 1970-01-01
    相关资源
    最近更新 更多