吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5555|回复: 100
收起左侧

[原创工具] 图片自动裁剪尺寸exe(电商可用)

  [复制链接]
renminwansui 发表于 2025-3-18 17:19
因为自己朋友做电商,让我给他做了一个自动批量选择图片裁剪成800*800(正方形,不足800的以实际尺寸为准,超过的只裁剪中心点开始的800*800)尺寸的工具

用起来很快,hhhh

现在将成品exe和py代码分享给大家

能够帮到大家我很高兴

图片展示:
1. 选择图片(可以批量选中)


2.选择输入文件夹

3.生成预览(会自动生成文件夹)


exe成品下载:https://ljk.lanzouu.com/iYols2qxysnc 密码:52pj


[Python] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
from PIL import Image
import tkinter as tk
from tkinter import filedialog
import os
from datetime import datetime
 
def crop_images():
    # 创建一个隐藏的 Tkinter 窗口
    root = tk.Tk()
    root.withdraw()
 
    # 弹出文件选择对话框,允许选择多个图片文件
    file_paths = filedialog.askopenfilenames(filetypes=[("Image files", "*.png;*.jpg;*.jpeg")])
 
    if file_paths:
        # 弹出文件夹选择对话框,让用户选择保存裁剪后图片的根文件夹
        output_root_folder = filedialog.askdirectory()
 
        if output_root_folder:
            # 获取当前时间并格式化
            current_time = datetime.now().strftime("%Y%m%d%H%M%S")
            # 生成新文件夹名称
            new_folder_name = f"{current_time}ki裁剪800"
            # 拼接新文件夹的完整路径
            new_folder_path = os.path.join(output_root_folder, new_folder_name)
 
            # 创建新文件夹
            if not os.path.exists(new_folder_path):
                os.makedirs(new_folder_path)
 
            for file_path in file_paths:
                try:
                    # 打开图片
                    image = Image.open(file_path)
                    width, height = image.size
 
                    # 确定裁剪尺寸
                    if width < 800 or height < 800:
                        crop_size = min(width, height)
                    else:
                        crop_size = 800
 
                    # 计算裁剪的坐标
                    left = (width - crop_size) // 2
                    top = (height - crop_size) // 2
                    right = left + crop_size
                    bottom = top + crop_size
 
                    # 裁剪图片
                    cropped_image = image.crop((left, top, right, bottom))
 
                    # 生成保存路径
                    file_name = file_path.split("/")[-1]
                    output_name = file_name.rsplit('.', 1)[0] + '_cropped.' + file_name.rsplit('.', 1)[1]
                    output_path = os.path.join(new_folder_path, output_name)
 
                    # 保存裁剪后的图片
                    cropped_image.save(output_path)
                    print(f"裁剪并保存图片: {output_path}")
                except Exception as e:
                    print(f"处理图片 {file_path} 时出错: {e}")
 
if __name__ == "__main__":
    crop_images()

免费评分

参与人数 15吾爱币 +15 热心值 +14 收起 理由
htx202502 + 1 + 1 我很赞同!
flydyf + 1 谢谢@Thanks!
Taurus1 + 1 + 1 谢谢@Thanks!
freedom0104 + 1 + 1 谢谢@Thanks!
ly19810529 + 1 + 1 谢谢@Thanks!
kyokusanagi2000 + 1 + 1 热心回复!
viconly + 1 + 1 谢谢@Thanks!
xcaoyi520 + 1 + 1 我很赞同!
枯木逢春犹再发 + 1 + 1 我很赞同!
Y3r89p + 1 + 1 谢谢@Thanks!
xiaokanliunian + 1 + 1 谢谢@Thanks!
truebaby + 1 + 1 谢谢@Thanks!
cncyy + 1 + 1 谢谢@Thanks!
lyj722 + 1 + 1 谢谢@Thanks!
lbbxx3123 + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

ph0215 发表于 2025-4-8 23:01
本帖最后由 ph0215 于 2025-4-8 23:03 编辑

用dp改一下,做个ui界面,加个日志框,第一个按钮,弹窗的打开文件,改为选取文件夹自动扫描文件夹内的图片(不包含子文件夹),第二个按钮,改为输出目录。第三个预览取消,做一张图用不上5秒。做出来就知道效果了。然后处理文件顺序,给个定义按照a-z,1-9,的顺序排列处理文件。加一个开始按钮,点击开始后启动新的线程处理,避免界面卡死。使用ff管道开启多线程处理,全程使用的总线程数以界面填写的数字为准。每次关闭软件要保存当前软件的设置,这样方便下一次打开直接使用。输出增加多种格式如png、gif等放在ui界面上方便用户选择。所有代码内容以界面选择填写为准。还有导出目标比例,让用户自己填写,以中心点为准。其他逻辑不变。
anning666 发表于 2025-3-18 17:24
jfy168 发表于 2025-3-18 17:31
hw728 发表于 2025-3-18 17:42
有图有源码,复制学习了
12394613643 发表于 2025-3-18 17:44
好东西学习一下,谢了
zjfy66888 发表于 2025-3-18 17:52

好东西学习一下,赞
panda15680 发表于 2025-3-18 17:59
好东西学习一下,赞
as19880115 发表于 2025-3-18 18:05
有源代码的最好了,可以根据实际情况自己改改,谢谢
William5081 发表于 2025-3-18 18:06
学习一下~
tjy0916 发表于 2025-3-18 18:12
感觉是Ai软件,尝试一下
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2025-5-19 16:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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