python - 在 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'
解决方案
您可能会遇到 2 个问题。
如果您通过命令行运行脚本,那么您需要将图像与运行此文件的脚本放在同一目录中。但是,如果您从另一个类调用此脚本,这可能会有所不同。
如果您使用的是 PyCharm,我知道过去我在需要定位文件的位置时遇到问题,因为您需要通过其菜单通过导入将文件添加到特定文件夹中。-> 如果是这种情况,我会搜索“在 pycharm 中放置输入文件的位置”
希望这可以帮助
推荐阅读
- php - PHP多维数组:删除外部数组,删除索引键和用逗号分隔的剩余数组
- java - 这个回报有什么问题?
- android - Ionic 4 - 安装运行执行完整的构建和安装,因为设备上的安装与磁盘上的本地构建不匹配
- pdflib - PDFlib - 围绕中心旋转任意角度的对象
- mysql - 使用 SELECT 时如何更改属性名称?
- java - 我如何将所有子文件夹添加到类路径 [like -cp "lib\**\*"]
- regex - 有没有办法用正则表达式触发器制作崇高的片段?
- go - 理解 GO 变量赋值
- python - Django 频道无法从异常中导入名称 RequestAborted
- clockify - Clockify 保存了半个月的报告