这很容易做到,但在程序 UI 上的数百个可能选项中,没有“选择”出现。
出路是使用程序的脚本功能来执行操作:
必须通过程序确定的是图像/层的比例是否更大
在宽度或高度上,并使用此比例缩放图层,然后将图层居中。
为方便起见,我在一行中为此编写了一些 Python 代码,您只需在 Python 控制台(过滤器->python->控制台)上复制和粘贴即可应用效果
在最近打开的图像的顶层。
img = gimp.image_list()[0]; layer = img.layers[0]; factor = min (float(img.width) / layer.width, float(img.height) / layer.height); layer.scale(int(layer.width * factor), int(layer.height * factor)); layer.set_offsets((img.width - layer.width) / 2, (img.height - layer.height) / 2)
既然这可以做到,但不实用,更因为它不允许你
选择要调整大小的图像或图层,我也将其格式化为 GIMP 的 python 脚本。
只需检查您的插件目录的编辑->首选项->文件夹->插件,
将下面的内容作为文件粘贴到那里(如果在 Windows 上,该文件必须具有“.py”扩展名。在 Linux 和 Mac OS 上,任何扩展名都可以,但您必须提供文件
“可执行”属性”)。
重新启动 GIMP 后,您将在图层菜单上方便地找到新命令:
#! /usr/bin/env python
# coding: utf-8
from gimpfu import *
def scale_layer_to_canvas_size(img, layer):
pdb.gimp_image_undo_group_start(img)
factor = min (float(img.width) / layer.width,
float(img.height) / layer.height)
layer.scale(int(layer.width * factor), int(layer.height * factor))
layer.set_offsets((img.width - layer.width) / 2,
(img.height - layer.height) / 2)
pdb.gimp_image_undo_group_end(img)
register("scale-layer-to-canvas-size",
"Scale layer to canvas size",
"Scales the layer to canvas size, keeping the aspect ratio",
"João S. O. Bueno", "Public domain", "2014",
N_("Scale layer to canvas size..."),
"*",
[(PF_IMAGE, "image", "Input image", None),
(PF_DRAWABLE, "layer", "Input drawable", None), ], [],
scale_layer_to_canvas_size, menu="<Image>/Layer/",
)
main()
注意它与上面的代码相同,但“img”和“layer”现在由 GIMP 提供
从菜单中选择操作时,有两个额外的调用,以便
scalign 和居中都作为单个动作“撤消” -
剩下的代码就是需要注册的样板
GIMP的功能