通常我只会使用 imagemagick convert
,但我有一堆扫描的图像,我必须裁剪杂乱无章的内容。
于是我在 gimp 上打开了大约 30 张图片,手动裁剪了它们。现在我发现自己想将它们调整为 66% 的大小并将它们全部导出为原始名称(它们是从 PNG 图像打开的)
我意识到没有简单的方法可以做到这一点。或者有吗?
所有搜索都告诉我使用命令行或脚本,但没有任何东西可以通过 UI 对已经打开的图像起作用。
答案1
Python 控制台实际上可以让你直接在屏幕上的几行中完成此操作,而无需创建脚本 -
for img in gimp.image_list():
img.scale(int(img.width * 0.66), int(img.height*0.66))
tmp = pdb.gimp_image_duplicate(img)
pdb.gimp_image_merge_visible_layers(tmp, CLIP_TO_IMAGE)
pdb.gimp_file_save(tmp, tmp.layers[0], img.filename, img.filename)
pdb.gimp_image_delete(tmp)
需要多写几行代码的原因是 GIMP 确实想要按原样“保存”图像 - 因此,需要执行复制(内部)、合并到单个图层以及删除(仅从 GIMP 内存中删除,而不是从磁盘中删除)的步骤 - 如果所有图像都已经是单个图层,则可以减少到以下 3 行:
for img in gimp.image_list():
img.scale(int(img.width * 0.66), int(img.height*0.66))
pdb.gimp_file_save(img, img.layers[0], img.filename, img.filename)
要输入这些内容(或者直接从这里复制并粘贴到那里),请转到Filters->Python->Console
并将上面的片段输入或粘贴到>>>
提示符中。
在此过程中,如果您想自动执行任何其他操作,请花点时间单击 Python 控制台对话框上的“浏览”按钮,并检查所有可用操作。点击“应用”按钮将在您的提示上粘贴对该函数的调用模板(不要忘记在粘贴的模板前加上空格,以便此调用在块内对齐 for
- 并将模板建议的变量名称替换为实际参数)