吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 311|回复: 3
收起左侧

[学习记录] python写的一个拼图的小工具

  [复制链接]
hfol85 发表于 2024-12-22 22:14
本帖最后由 hfol85 于 2024-12-23 09:04 编辑

1、一个python借助AI辅助写的可批量处理图片的工具:https://www.52pojie.cn/thread-1993259-1-1.html
2、这个小工具可以将几张图片按上下结构拼接为一个图片。

[Python] 纯文本查看 复制代码
import os
from PIL import Image
import random
from tkinter import Tk
from tkinter.filedialog import askopenfilenames, asksaveasfilename


def combine_images_randomly():
    # 隐藏Tkinter主窗口
    root = Tk()
    root.withdraw()

    # 弹出文件选择对话框,可多选图片文件
    image_files = askopenfilenames(title="选择图片文件", filetypes=[("Image Files", "*.jpg;*.png;*.jpeg")])
    if not image_files:
        print("没有选择任何图片文件")
        return

    # 将元组形式的文件路径转换为列表
    image_files = list(image_files)

    # 加载所有图片
    images = [Image.open(img_file) for img_file in image_files]

    # 计算拼接后图片的尺寸(简单以每行最多图片数量来确定布局,这里示例为水平排列,可按需调整)
    max_width = max(img.width for img in images)
    total_height = sum(img.height for img in images)
    new_image = Image.new('RGB', (max_width, total_height))

    # 随机排列图片的纵坐标位置
    y_offset = 0
    random.shuffle(images)
    for img in images:
        new_image.paste(img, (0, y_offset))
        y_offset += img.height

    # 弹出保存对话框,让用户选择保存位置和文件名
    output_path = asksaveasfilename(title="保存拼接后的图片", defaultextension=".jpg", filetypes=[("JPEG Image", "*.jpg")])
    if output_path:
        new_image.save(output_path)
        print(f"图片已成功拼接并保存到 {output_path}")
    else:
        print("未选择保存位置,图片未保存")


if __name__ == "__main__":
    combine_images_randomly()

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

zhu8487 发表于 2024-12-23 07:49
感谢楼主分享试用
gegegefei 发表于 2024-12-23 08:16
jeledong 发表于 2024-12-23 08:52
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-1-2 20:06

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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