于是想写个程序要实现功能:
1.单张图片根据输入行、列数量,复制拼接生成新的图片。
2.批量处理文件夹里面的所有图片。
3.自动命名添加后缀。要有图框。
以下是实操,代码主要由AI生成
用Python 写一段代码 实现 文件夹里面的所有图片批处理 单张jpg格式图片复制排列生成3*3的新图片
112.png (81.65 KB, 下载次数: 0)
下载附件
2024-8-9 18:41 上传
再自己加了用户输入界面,想把3x3改成获取输入行、列 进行拼接,结果一直报错,
113.png (70.85 KB, 下载次数: 0)
下载附件
2024-8-9 18:49 上传
114.png (63.05 KB, 下载次数: 0)
下载附件
2024-8-9 18:49 上传
自己解决不了,没办法把所有代码发给AI处理
115.png (75.21 KB, 下载次数: 0)
下载附件
2024-8-9 18:51 上传
感叹AI的强大,从新写的新代码
附上代码
[Python] 纯文本查看 复制代码
import PySimpleGUI as sg
import os
from PIL import Image
def create_3x3_image(input_image_path, output_image_path, new_width, new_height):
img = Image.open(input_image_path)
width, height = img.size
# 计算新图片的宽度和高度
new_width = width * new_width
new_height = height * new_height
new_img = Image.new('RGB', (new_width, new_height))
# 粘贴原始图片到新图片的9个位置
for i in range(new_width // width):
for j in range(new_height // height):
new_img.paste(img, (i * width, j * height))
new_img.save(output_image_path)
def batch_process_images(input_folder, output_folder, new_width, new_height):
if not os.path.exists(output_folder):
os.makedirs(output_folder)
for filename in os.listdir(input_folder):
if filename.lower().endswith(('.jpg', '.jpeg', '.png', '.bmp', '.tiff')):
input_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, f'3x3_{filename}')
create_3x3_image(input_path, output_path, new_width, new_height)
print(f'Processed {filename}')
def batch_process_images(input_folder, output_folder, new_width, new_height):
if not os.path.exists(output_folder):
os.makedirs(output_folder)
sg.cprint(f'完成处理')
di = 1
for filename in os.listdir(input_folder):
if filename.lower().endswith(('.jpg', '.jpeg', '.png', '.bmp', '.tiff')):
# 分离文件名和扩展名
base, ext = os.path.splitext(filename)
# 构建新的文件名,添加“3x3”后缀
new_filename = f"{base}_3x3{ext}"
input_path = os.path.join(input_folder, filename)
output_path = os.path.join(output_folder, new_filename)
# 调用函数处理图片
create_3x3_image(input_path, output_path, new_width, new_height)
# sg.cprint(f'Processed {filename} to {new_filename}')
sg.cprint(f'第{di}个图片-- {filename} to {new_filename}')
di += 1
# ...(其他代码保持不变)
def main():
layout = [
[sg.Text('待处理文件夹:', size=(15, 1)),sg.InputText(key='-input_folder-'), sg.FolderBrowse('选择文件夹')],
[sg.Text('输出文件夹:', size=(15, 1)), sg.InputText(key='-output_folder-'), sg.FolderBrowse('选择文件夹')],
[sg.Text('列:', size=(2, 1)), sg.InputText(key='-newwidth-', size=(5, 1)), sg.Text('行:', size=(2, 1)),
sg.InputText(key='-newheight-', size=(5, 1)), sg.Button('拼接批处理')],
[sg.ML(size=(80, 15), reroute_cprint=True, )],
# [sg.Button('开始批处理'), sg.OUTPUT(size=(80, 15),key='-OUTPUT-')],
# [sg.Output(size=(80, 2), key='-OUTPUT-')],
]
window = sg.Window('批量实现 一张图片复制拼接', layout)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED or event == '退出':
break
if event == '拼接批处理':
input_folder = values['-input_folder-']
output_folder = values['-output_folder-']
new_width = int(values['-newwidth-'])
new_height = int(values['-newheight-'])
if not input_folder or not output_folder or new_width
116.png (391.95 KB, 下载次数: 0)
下载附件
2024-8-9 20:08 上传
[color=]GUI界面字体不好看,问了AI不能解决,求大神指导
117.png (164.95 KB, 下载次数: 0)
下载附件
2024-8-9 20:12 上传
此贴纪念自己第一个程序。虽然还有些代码看不懂{:1_908:}{:1_908:}
也给新手一个思路可以结合AI写代码。
最后成品
通过百度网盘分享的文件:批量处理单张图片复制拼接.zip
链接:https://pan.baidu.com/s/1jLn4Yeo-EVYtHe8lX6Qs4g?pwd=52pj
提取码:52pj