首页 > 解决方案 > 在 Python 中合并图像

问题描述

我有大约 2000 个文件夹,每个文件夹有四个图像,我想合并每个文件夹中的图像。我面临的问题是我无法提供正确的路径/目录来读取包含我想使用此代码的图像的文件夹:

import sys
from PIL import Image
import os
from os.path import join as jn
import pandas as pd

files = "C:/Users/..."
os.listdir(files)

images = [Image.open(x) for x in ['gsv_0.jpg', 'gsv_1.jpg', 'gsv_2.jpg', 'gsv_3.jpg']]
widths, heights = zip(*(i.size for i in images))

total_width = sum(widths)
max_height = max(heights)

new_im = Image.new('RGB', (total_width, max_height))

x_offset = 0
for im in images:
  new_im.paste(im, (x_offset,0))
  x_offset += im.size[0]

new_im.save('image1.jpg')"

我收到以下错误


FileNotFoundError Traceback (最近一次调用最后) in ----> 1 images = [Image.open(x) for x in ['gsv_0.jpg', 'gsv_1.jpg', 'gsv_2.jpg', 'gsv_3.jpg ']] 2 宽度,高度 = zip(*(i.size for i in images)) 3 4 total_width = sum(widths) 5 max_height = max(heights)

in (.0) ----> 1 个图像 = [Image.open(x) for x in ['gsv_0.jpg', 'gsv_1.jpg', 'gsv_2.jpg', 'gsv_3.jpg']] 2宽度,高度 = zip(*(i.size for i in images)) 3 4 total_width = sum(widths) 5 max_height = max(heights)

~\Anaconda3\lib\site-packages\PIL\Image.py in open(fp, mode) 2632 2633 if filename: -> 2634 fp = builtins.open(filename, "rb") 2635 exclusive_fp = True 2636

FileNotFoundError:[Errno 2] 没有这样的文件或目录:'gsv_0.jpg'

标签: python

解决方案


您可能会遇到 2 个问题。

  1. 如果您通过命令行运行脚本,那么您需要将图像与运行此文件的脚本放在同一目录中。但是,如果您从另一个类调用此脚本,这可能会有所不同。

  2. 如果您使用的是 PyCharm,我知道过去我在需要定位文件的位置时遇到问题,因为您需要通过其菜单通过导入将文件添加到特定文件夹中。-> 如果是这种情况,我会搜索“在 pycharm 中放置输入文件的位置”

希望这可以帮助


推荐阅读