吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1041|回复: 8
收起左侧

[Python 原创] 批量实现 图片复制拼接 成新图

[复制链接]
xiao31bai 发表于 2024-8-9 20:18
本帖最后由 xiao31bai 于 2024-8-9 21:03 编辑

Python新手小白在B站了解到可以用 文心一言 实现快速 编程
于是想写个程序要实现功能:
1.单张图片根据输入行、列数量,复制拼接生成新的图片。
2.批量处理文件夹里面的所有图片。
3.自动命名添加后缀。要有图框。

以下是实操,代码主要由AI生成
     用Python 写一段代码 实现     文件夹里面的所有图片批处理     单张jpg格式图片复制排列生成3*3的新图片
112.png


再自己加了用户输入界面,想把3x3改成获取输入行、列 进行拼接,结果一直报错,
113.png
114.png

自己解决不了,没办法把所有代码发给AI处理
115.png
感叹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 <= 0 or new_height <= 0:
                sg.popup_error('请确保所有输入都正确无误!')
                continue

            batch_process_images(input_folder, output_folder, new_width, new_height)
            sg.cprint(f'---处理完成,输出到 {output_folder}---')
    #            window['-OUTPUT-'].update(f'处理完成,输出到 {output_folder}')
    window.close()


main()


116.png

GUI界面字体不好看,问了AI不能解决,求大神指导
117.png

此贴纪念自己第一个程序。虽然还有些代码看不懂{:1_908:}{:1_908:}  
也给新手一个思路可以结合AI写代码。

最后成品
通过百度网盘分享的文件:批量处理单张图片复制拼接.zip
链接:https://pan.baidu.com/s/1jLn4Yeo-EVYtHe8lX6Qs4g?pwd=52pj
提取码:52pj

免费评分

参与人数 3吾爱币 +11 热心值 +3 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
waltzofjack + 3 + 1 用心讨论,共获提升!
echo8100 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

cjy2323 发表于 2024-8-10 10:26
感谢分享
52soft 发表于 2024-8-10 11:04
booluo 发表于 2024-8-10 11:12
AI确实很强,可以直接描述,能根据你描述的内容生成代码,看不懂的代码还可以让AI解释一下
xuandongshiqi 发表于 2024-8-10 13:56
有趣给我带来了新思路
bzyy 发表于 2024-8-12 08:24
感谢分享
woaipojieniubi 发表于 2024-8-17 12:03
这个工具真不错
pjyang 发表于 2024-8-17 12:20
我来晚了,分享链接已失效,还是感谢分享代码部分
fanliansuo1 发表于 2024-8-20 18:22
学习,学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 12:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表