竖屏图片转化成横屏图片
适用范围:
1440×2560图片横向复制、拼接后转化成1920×1080
开发过程
安装python图片处理库
cmd输入pip install pillow
创建文件夹
创建两个文件夹,名称分别为input output
input:把所有 1440×2560 的原图放进去
output:处理好的封面会自动生成在这里
创建.py
在上述文件夹同路径下新建一个txt,将下面的代码直接复制到txt中保存,把文件重命名为批量拼接.py
点击查看代码
from PIL import Image
import os
# -------------------------- 配置参数(无需修改) --------------------------
INPUT_FOLDER = "input" # 原图存放文件夹
OUTPUT_FOLDER = "output" # 处理后图片输出文件夹
TARGET_WIDTH = 1920 # 最终输出宽度
TARGET_HEIGHT = 1080 # 最终输出高度
SUPPORT_FORMATS = (".jpg", ".jpeg", ".png", ".bmp")
# ------------------------------------------------------------------------
# 自动创建输出文件夹
os.makedirs(OUTPUT_FOLDER, exist_ok=True)
# 统计总文件数
total_files = len([f for f in os.listdir(INPUT_FOLDER) if f.lower().endswith(SUPPORT_FORMATS)])
processed_count = 0
failed_count = 0
print(f"找到 {total_files} 张待处理图片,开始处理...\n")
# 遍历所有图片
for filename in os.listdir(INPUT_FOLDER):
if filename.lower().endswith(SUPPORT_FORMATS):
file_path = os.path.join(INPUT_FOLDER, filename)
try:
# 打开原图
with Image.open(file_path) as img:
img_width, img_height = img.size
# 步骤1:创建3张图并排的画布
combined_width = img_width * 3
combined_img = Image.new("RGB", (combined_width, img_height))
# 依次粘贴三张图
combined_img.paste(img, (0, 0))
combined_img.paste(img, (img_width, 0))
combined_img.paste(img, (img_width * 2, 0))
# 步骤2:缩放到1920×1080(使用最高质量算法)
final_img = combined_img.resize(
(TARGET_WIDTH, TARGET_HEIGHT),
Image.Resampling.LANCZOS
)
# 保存图片
output_path = os.path.join(OUTPUT_FOLDER, filename)
final_img.save(output_path, quality=95, optimize=True)
processed_count += 1
print(f"✅ [{processed_count}/{total_files}] 已完成:{filename}")
except Exception as e:
failed_count += 1
print(f"❌ 处理失败:{filename},错误原因:{str(e)}")
# 处理完成统计
print(f"\n🎉 全部处理完成!")
print(f"成功:{processed_count} 张 | 失败:{failed_count} 张")
print(f"处理后的图片已保存到:{os.path.abspath(OUTPUT_FOLDER)}")
使用方法
- 把所有 1440×2560 的原图放进
input - 双击运行
批量拼接.py即可,生成的所有封面都是1920×1080 标准尺寸
代码优化
优化内容:完全无拉伸的居中裁剪版 Python 脚本
只用替换以下代码即可,使用方法跟上面一致
点击查看代码
from PIL import Image
import os
# -------------------------- 配置参数(无需修改) --------------------------
INPUT_FOLDER = "input" # 原图存放文件夹
OUTPUT_FOLDER = "output" # 处理后图片输出文件夹
TARGET_WIDTH = 1920 # 最终输出宽度
TARGET_HEIGHT = 1080 # 最终输出高度
SUPPORT_FORMATS = (".jpg", ".jpeg", ".png", ".bmp")
# ------------------------------------------------------------------------
# 自动创建输出文件夹
os.makedirs(OUTPUT_FOLDER, exist_ok=True)
# 统计总文件数
total_files = len([f for f in os.listdir(INPUT_FOLDER) if f.lower().endswith(SUPPORT_FORMATS)])
processed_count = 0
failed_count = 0
print(f"找到 {total_files} 张待处理图片,开始处理(无拉伸居中裁剪模式)...\n")
# 遍历所有图片
for filename in os.listdir(INPUT_FOLDER):
if filename.lower().endswith(SUPPORT_FORMATS):
file_path = os.path.join(INPUT_FOLDER, filename)
try:
# 打开原图
with Image.open(file_path) as img:
img_width, img_height = img.size
# 步骤1:创建3张图并排的画布(无缝拼接)
combined_width = img_width * 3
combined_img = Image.new("RGB", (combined_width, img_height))
combined_img.paste(img, (0, 0))
combined_img.paste(img, (img_width, 0))
combined_img.paste(img, (img_width * 2, 0))
# 步骤2:等比例缩放到宽度=1920(保证无拉伸)
scale_ratio = TARGET_WIDTH / combined_width
scaled_height = int(combined_img.height * scale_ratio)
scaled_img = combined_img.resize(
(TARGET_WIDTH, scaled_height),
Image.Resampling.LANCZOS
)
# 步骤3:上下居中裁剪到高度=1080
# 计算需要裁剪掉的上下边距
crop_top = (scaled_height - TARGET_HEIGHT) // 2
crop_bottom = crop_top + TARGET_HEIGHT
# 执行裁剪(左, 上, 右, 下)
final_img = scaled_img.crop((0, crop_top, TARGET_WIDTH, crop_bottom))
# 保存图片(高质量)
output_path = os.path.join(OUTPUT_FOLDER, filename)
final_img.save(output_path, quality=95, optimize=True)
processed_count += 1
print(f"✅ [{processed_count}/{total_files}] 已完成:{filename}")
except Exception as e:
failed_count += 1
print(f"❌ 处理失败:{filename},错误原因:{str(e)}")
# 处理完成统计
print(f"\n🎉 全部处理完成!")
print(f"成功:{processed_count} 张 | 失败:{failed_count} 张")
print(f"处理后的图片已保存到:{os.path.abspath(OUTPUT_FOLDER)}")
打包生成exe
安装打包工具库
cmd输入pip install pyinstaller
一键打包成exe
- 找到你之前保存的
批量拼接.py脚本文件(就是那个无拉伸居中裁剪版) - 在这个脚本所在的文件夹,按住 Shift 键 + 鼠标右键,选择「在此处打开 PowerShell 窗口」(或「在此处打开命令窗口」)
- 复制下面的命令,粘贴进去按回车:
pyinstaller --onefile --name 批量生成竖屏转横屏图片 批量拼接.py
获取可执行文件
打包完成后,你会在当前文件夹看到一个 dist 文件夹,打开它,里面的 批量生成竖屏转横屏图片.exe 就是你要的独立程序。
使用方法(和之前一样)
- 把这个
批量生成竖屏转横屏图片.exe文件,和你的input、output文件夹放在同一个目录下 - 把所有 1440×2560 的原图放进
input文件夹 - 双击运行
批量生成竖屏转横屏图片.exe - 等待黑窗口跑完,处理好的 1920×1080 封面就全部在
output文件夹里了

浙公网安备 33010602011771号