# 求推荐能批量交互式裁切图片的Windows轻量化软件

**URL:** <https://meta.appinn.net/t/topic/70585>\
**Category:** 问题求助\
**Created:** [2025 年4 月 21 日 11:29 UTC](https://meta.appinn.net/t/topic/70585 "2025-04-21T11:29:25Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![yazii](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/yazii/32/13871_2.png) [@yazii](https://meta.appinn.net/u/yazii)\
**Post date:** [2025 年4 月 21 日 11:29 UTC](https://meta.appinn.net/t/topic/70585/1 "2025-04-21T11:29:25Z")

</div>

一、限制条件

1. 首先是Windows端软件
2. 要轻量。虽然ps可以很完美地完成任务，但是ps太重了。如果打开大量图片，电脑也hold不住。
3. 默认保存为副本到另一个目录，而不是覆盖保存（这个需求可以不满足，毕竟可以把待处理的图片全部提前复制一份）

二、使用场景  
我现在有大量图片，需要从中挑选合适的图片，放大、裁切到制定尺寸。  
由于每个图片需要保存的位置都不一样，所以不能使用程序设好参数批量处理，而是必须手动交互式调整。唯一确定的是输出的尺寸需要符合预设。  
问困难在于，如果重复打开图片-调整尺寸-保存这样的动作，次数多了会非常烦。  
如果真的一次性把全部图片都打开然后逐一处理，那电脑受不了。  
所以期望有个能批量处理图片的软件，批量选择图片后，图片实际上只打开了一个。被打开的图片始终应用了预设的裁切尺寸，我只需要根据预览的效果，微调缩放和移动，然后点保存完事。  
关键就在于：不需要重复打开和设置裁切区域的动作

---

<div class="post-metadata">

**Author:** ![Qingwa](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/qingwa/32/58632_2.png) [@Qingwa](https://meta.appinn.net/u/Qingwa)\
**Post date:** [2025 年4 月 21 日 12:05 UTC](https://meta.appinn.net/t/topic/70585/2 "2025-04-21T12:05:18Z")

</div>

你想要有个框框，一个一个来处理图片是吧。

铁打的框框，流水的图片。建议让AI写一个，我没见过这种 :doge:

---

<div class="post-metadata">

**Author:** ![VictoryRoad](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/victoryroad/32/58964_2.png) [@VictoryRoad](https://meta.appinn.net/u/VictoryRoad)\
**Post date:** [2025 年4 月 21 日 12:23 UTC](https://meta.appinn.net/t/topic/70585/3 "2025-04-21T12:23:09Z")

</div>

其实换种思路，找个能够：

- 记住上次设置的裁剪尺寸参数的、或能设置默认裁剪尺寸
- 同时还可以自定义裁剪区域

的软件就行。

---

<div class="post-metadata">

**Author:** ![dog](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/dog/32/18667_2.png) [@dog](https://meta.appinn.net/u/dog)\
**Post date:** [2025 年4 月 21 日 12:28 UTC](https://meta.appinn.net/t/topic/70585/4 "2025-04-21T12:28:28Z")

</div>

imagej/Fiji  
通过宏可以实现，具体可以问AI  
直接贴你的提问，问他用imagej怎么实现就行

---

<div class="post-metadata">

**Author:** ![kat](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/kat/32/58750_2.png) [@kat](https://meta.appinn.net/u/kat)\
**Post date:** [2025 年4 月 21 日 12:29 UTC](https://meta.appinn.net/t/topic/70585/5 "2025-04-21T12:29:02Z")

</div>

用PS的批处理，并不是一次打开所有图片，而是依次打开

然后设置一个动作，每打开一张图片就创建一个裁剪，自动运行。这样PS会自动依次打开图片并裁剪，你只要拖动图片到需要的位置就行了。

---

<div class="post-metadata">

**Author:** ![yazii](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/yazii/32/13871_2.png) [@yazii](https://meta.appinn.net/u/yazii)\
**Post date:** [2025 年4 月 21 日 12:38 UTC](https://meta.appinn.net/t/topic/70585/6 "2025-04-21T12:38:57Z")

</div>

> [@Qingwa](#):
>
> 你想要有个框框，一个一个来处理图片是吧。
> 
> 铁打的框框，流水的图片。

是这个意思 实际上发完帖子我就开始让ai写了，但是现在才调好缩略图预览和图片加载，裁切框还遥遥无期

---

<div class="post-metadata">

**Author:** ![SomeoneAtAppinn](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/s/f9ae1b/32.png) [@SomeoneAtAppinn](https://meta.appinn.net/u/SomeoneAtAppinn)\
**Post date:** [2025 年4 月 21 日 14:12 UTC](https://meta.appinn.net/t/topic/70585/7 "2025-04-21T14:12:10Z")

</div>

> [@VictoryRoad](#):
>
> - 记住上次设置的裁剪尺寸参数的、或能设置默认裁剪尺寸
> - 同时还可以自定义裁剪区域

顺着这个思路的话，还差一条自动保存到特定目录并命名，如果命名格式没要求的话截图类软件应该就可以，比如picpick

---

<div class="post-metadata">

**Author:** ![L11](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/l11/32/5516_2.png) [@L11](https://meta.appinn.net/u/L11)\
**Post date:** [2025 年4 月 21 日 14:33 UTC](https://meta.appinn.net/t/topic/70585/8 "2025-04-21T14:33:21Z")

</div>

ui：一个用于预览裁剪效果的遮罩，大小可调，以及遮罩后的图片框，加上一些按钮。  
后端调用命令行实现（或api），把遮罩参数以及图片参数传给外部工具，比如imagemagick。  
这叫 do one thing and do it well.  
用wpf大概很快能搞完

---

<div class="post-metadata">

**Author:** ![haitao](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/h/958977/32.png) [@haitao](https://meta.appinn.net/u/haitao)\
**Post date:** [2025 年4 月 21 日 14:46 UTC](https://meta.appinn.net/t/topic/70585/9 "2025-04-21T14:46:25Z")

</div>

对于具体图片，把它的左上角(a,b)到右下角(c,d)部分另存为长宽为e,f的图片文件？  
不同图片，这6个参数有什么规律？有什么参数可以固定的？？

---

<div class="post-metadata">

**Author:** ![yazii](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/yazii/32/13871_2.png) [@yazii](https://meta.appinn.net/u/yazii)\
**Post date:** [2025 年4 月 21 日 14:54 UTC](https://meta.appinn.net/t/topic/70585/10 "2025-04-21T14:54:28Z")

</div>

> [@VictoryRoad](#):
>
> 其实换种思路，找个能够：
> 
> - 记住上次设置的裁剪尺寸参数的、或能设置默认裁剪尺寸
> - 同时还可以自定义裁剪区域

具体而言是固定裁切结果的长宽，但是在裁切前需要根据预览效果做缩放，并且每次缩放的比例不一定

> [@kat](#):
>
> 然后设置一个动作，每打开一张图片就创建一个裁剪，自动运行。这样PS会自动依次打开图片并裁剪，你只要拖动图片到需要的位置就行了。

如上，从算法上讲，需要先缩放，后裁切，所以不能这么用。  
我说的开销大的解法是建画布导入图层，画布大小就是最终结果，逐个图层调整，最后全部导出

> [@dog](#):
>
> imagej/Fiji  
> 通过宏可以实现，具体可以问AI  
> 直接贴你的提问，问他用imagej怎么实现就行

这玩意门槛就高了，得是个有imagej使用基础的人才行

---

<div class="post-metadata">

**Author:** ![L11](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/l11/32/5516_2.png) [@L11](https://meta.appinn.net/u/L11)\
**Post date:** [2025 年4 月 21 日 14:54 UTC](https://meta.appinn.net/t/topic/70585/11 "2025-04-21T14:54:34Z")

</div>

问了下ai  
这个程序实现了以下功能：

1. **目录选择** ：点击“选择目录”按钮，弹出文件夹选择对话框，加载目录中的JPG和PNG图片。
2. **图片显示** ：在Canvas中显示图片，左上角对齐。
3. **裁剪框设置** ：

- 通过鼠标在图片上拖动创建和调整裁剪框（红色边框，半透明填充）。
- 标尺（上下和左右的灰色区域）作为视觉参考。
- 裁剪框参数（X, Y, 宽度, 高度）显示在底部文本框中。
- 用户可直接编辑文本框中的参数，程序会验证输入并限制裁剪框在图片范围内。

1. **完成处理** ：

- 点击“完成”按钮，输出当前图片路径和裁剪参数（当前为控制台输出，您需要根据需求修改为实际的外部程序调用）。
- 保存当前裁剪参数，作为下一张图片的预设值。
- 自动加载目录中的下一张图片。

1. **参数记忆** ：每次完成裁剪后，保存裁剪参数，并在加载新图片时应用。

**使用说明** ：

- 运行程序后，点击“选择目录”选择包含图片的文件夹。
- 图片加载后，拖动鼠标设置裁剪框，或直接修改文本框中的参数。
- 点击“完成”处理当前图片并加载下一张。
- 裁剪参数会自动应用到下一张图片。

---

<div class="post-metadata">

**Author:** ![VictoryRoad](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/victoryroad/32/58964_2.png) [@VictoryRoad](https://meta.appinn.net/u/VictoryRoad)\
**Post date:** [2025 年4 月 21 日 15:03 UTC](https://meta.appinn.net/t/topic/70585/12 "2025-04-21T15:03:29Z")

</div>

> [@yazii](#):
>
> 具体而言是固定裁切结果的长宽，但是在裁切前需要根据预览效果做缩放，并且每次缩放的比例不一定

其实可以先固定长宽比，最后再按需求对所有图像进行缩放。

> [@haitao](#):
>
> 把它的左上角(a,b)到右下角(c,d)部分另存为长宽为e,f的图片文件？  
> 不同图片，这6个参数有什么规律？有什么参数可以固定的？？

- `c - a = e`
- `d - b = f`

按楼主的需求，固定长宽比的话，其实就是：

- `(c - a)/（d - b) = k`，其中 k 为定植。

> [@yazii](#):
>
> 这玩意门槛就高了，得是个有imagej使用基础的人才行

不需要什么基础，ImageJ 是纯图形化操作，您让 AI 告诉您点菜单栏里的哪个命令、输入哪些参数就行。

---

<div class="post-metadata">

**Author:** ![yazii](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/yazii/32/13871_2.png) [@yazii](https://meta.appinn.net/u/yazii)\
**Post date:** [2025 年4 月 21 日 15:04 UTC](https://meta.appinn.net/t/topic/70585/13 "2025-04-21T15:04:28Z")

</div>

找到了一个 toobox 软件，是用来批量裁切图片用于lora训练的，和我的情况比较接近，在和作者沟通中，预计可以满足需求

---

<div class="post-metadata">

**Author:** ![DavidJoy](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/davidjoy/32/58244_2.png) [@DavidJoy](https://meta.appinn.net/u/DavidJoy)\
**Post date:** [2025 年4 月 21 日 16:30 UTC](https://meta.appinn.net/t/topic/70585/14 "2025-04-21T16:30:41Z")

</div>

先后尝试了 GIMP、Krita、[Paint.NET](http://Paint.NET) 最后找到一个，貌似符合需求（至少能快速地完成此工作，足够流水线作业）

最后总结的方案二，我觉得比较完美了（可惜限定条件：“可行的操作可能只有: 框是固定尺寸,图可以缩放平移”）

> **内容太占地方，已折叠**
>
> ### 软件：XnView MP
> 
> [https://www.xnview.com/](https://www.xnview.com/)
> 
> 1. 支持 Windows
> 2. 轻量：便携版安装包大约 90 MB，是一个图片浏览+处理软件，非 PS 那种超级工具
> 3. 需要提前复制一份
> 
> ### 关键功能 Crop, Save & Next
> 
> - Crop, Save & Next
> - Crop 尺寸有自定义预设（防止不小心拉到了，改变了大小，快速归位）
> - Crop 框点了 Next 后是不动的  
> 这很符合楼主的需求，
> 
> ![11.png](https://meta-edge.appinn.com/uploads/default/original/3X/8/9/898de1bb92bd046df7827a27a06962bbe88fe959.webp)  
> 然后开始流水线操作
> 
> ![Snipaste_2025-04-22_00-26-00.png](https://meta-edge.appinn.com/uploads/default/original/3X/0/c/0c5895a236c1fd3ee5ad88bc5ed91569c2df9acd.webp)
> 
> 亲测效果（用时不到一分钟）
> 
> ### 目前还有一个问题：怎么放大
> 
> ![2.png](https://meta-edge.appinn.com/uploads/default/original/3X/5/9/597aaad89f08f09fe8973e5d8f4820dea3e46abb.webp)
> 
> 目前的想法是，用类似 Snipaste 的贴图功能，在屏幕上粘一个参考框
> 
> 然后对文件夹里的图片进行快速的 Resize
> 
> 这个我暂时还没找到完美的方法
> 
> # 方案总结
> 
> 方案一：（严格按照楼主说的先放大，框不变）
> 
> - 先半自动放大到合适的尺寸
> - 半自动 Crop
> 
> 方案二：（个人觉得此方案是完美的，貌似只要放大就有损失产生了，和方案一等效，但是更精准）
> 
> - 使用固定比例的 Crop 框，半自动 Crop
> - 一键批量放大到制定的尺寸
> 
> 用固定的比例 Crop
> 
> ![33.png](https://meta-edge.appinn.com/uploads/default/original/3X/6/e/6e839b2bd63dc3e77f272aae4822844736e4feef.webp)  
> 一键缩放到统一大小  
> ![44.png](https://meta-edge.appinn.com/uploads/default/original/3X/a/0/a0373c98940b73293fafe62ec911433ef0f533c4.webp)

ps 抽象地描述需求不如直接给个 Demo 案例。

---

<div class="post-metadata">

**Author:** ![shugen002](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/shugen002/32/58498_2.png) [@shugen002](https://meta.appinn.net/u/shugen002)\
**Post date:** [2025 年4 月 21 日 23:27 UTC](https://meta.appinn.net/t/topic/70585/15 "2025-04-21T23:27:33Z")

</div>

这个需求怎么听起来像裁剪证件照的感觉？

---

<div class="post-metadata">

**Author:** ![yazii](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/yazii/32/13871_2.png) [@yazii](https://meta.appinn.net/u/yazii)\
**Post date:** [2025 年4 月 22 日 00:33 UTC](https://meta.appinn.net/t/topic/70585/16 "2025-04-22T00:33:00Z")

</div>

确实和裁头像有点接近,裁头像的策略是选择画面、固定比例,我还要根据缩放比例进行权衡,尽量让比例接近100%不发生缩放

---

<div class="post-metadata">

**Author:** ![yazii](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/yazii/32/13871_2.png) [@yazii](https://meta.appinn.net/u/yazii)\
**Post date:** [2025 年4 月 22 日 00:41 UTC](https://meta.appinn.net/t/topic/70585/17 "2025-04-22T00:41:07Z")

</div>

如上一楼回复,如果不需要考虑缩放因素,这个软件确实是极佳选择.问题的关键就在于缩放-裁剪在一步内完成,才能完成策略均衡.  
可行的操作可能只有: 框是固定尺寸,图可以缩放平移

---

<div class="post-metadata">

**Author:** ![VictoryRoad](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/victoryroad/32/58964_2.png) [@VictoryRoad](https://meta.appinn.net/u/VictoryRoad)\
**Post date:** [2025 年4 月 22 日 00:50 UTC](https://meta.appinn.net/t/topic/70585/18 "2025-04-22T00:50:37Z")

</div>

用 Powerpoint 似乎能实现楼主的需求，具体操作略微麻烦，这里直接录个视频给大家看看效果：

---

<div class="post-metadata">

**Author:** ![amen](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/amen/32/16589_2.png) [@amen](https://meta.appinn.net/u/amen)\
**Post date:** [2025 年4 月 22 日 01:49 UTC](https://meta.appinn.net/t/topic/70585/19 "2025-04-22T01:49:36Z")

</div>

十几年前我还真用过这种软件  
一模一样的东西  
可惜我早已经忘记名字了

---

<div class="post-metadata">

**Author:** ![dog](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/dog/32/18667_2.png) [@dog](https://meta.appinn.net/u/dog)\
**Post date:** [2025 年4 月 22 日 02:55 UTC](https://meta.appinn.net/t/topic/70585/20 "2025-04-22T02:55:12Z")

</div>

指示AI调出来一个imagej/fiji 脚本，非常简单好用：

1. 把脚本保存成 ijm后缀名的脚本文件
2. 打开imagej，把脚本拖到imagej窗口
3. 点击 run

然后就欧克了，你的所有需求都满足  
会一次一个打开图片  
打开的图片会有预设的选框，可以直接拖动选框，按住shift拖动四角可以原比例调整大小  
调整好后点击ok，自动保存到文件夹下新建的"after"子文件夹里。

```auto
// 选择文件夹
dir = getDirectory("Choose a directory"); // 选择文件夹
list = getFileList(dir); // 获取文件夹中的文件列表

// 遍历文件夹中的每一张图片
for (i = 0; i < list.length; i++) {
    // 只处理图像文件（根据文件扩展名过滤）
    if (endsWith(list[i], ".jpg") || endsWith(list[i], ".png") || endsWith(list[i], ".tif") || endsWith(list[i], ".bmp")) {
        open(dir + list[i]); // 打开图像

        // 执行裁剪操作
        makeRectangle(0, 0, 440, 440); // 初始位置和尺寸
        waitForUser("wait for human"); // 等待用户交互（暂停）
        run("Crop"); // 执行裁剪

        // 获取当前图像的路径和文件名
        currentPath = getDirectory("image"); // 获取当前图像的文件夹路径
        fileName = getTitle(); // 获取当前图像的文件名
        
        // 查找扩展名
        dotIndex = fileName.lastIndexOf('.');
        if (dotIndex > 0) { // 确保不是以点开头或没有扩展名
            extension = fileName.substring(dotIndex + 1);
        }

        // 创建新的文件夹路径
        newDirectory = currentPath + "after/"; // 将 "after" 添加到原文件夹路径
        newFilePath = newDirectory + fileName; // 将文件名与新路径结合

        // 检查 "after" 文件夹是否存在，如果不存在则创建
        if (!File.exists(newDirectory)) {
            File.makeDirectory(newDirectory);
        }

        // 根据文件扩展名确定保存格式
        saveAs(extension, newFilePath); // 保存文件
        close(); // 关闭当前图像
    }
}

```

[下一页](https://meta.appinn.net/t/topic/70585.md?page=2)
