调整图层大小以适合画布 - Gimp

时间:2014-01-09 10:45:01

标签: resize image-resizing gimp

我目前正在使用Gimp来调整某些图片的大小。我是一名网络开发人员,但我并没有真正使用图像处理软件,因为大部分图像都是由设计师提供的,因此Gimp工具对我来说非常陌生。我查看了Gimp网站上的所有教程和帮助指南,但我找不到最简单问题的答案:

如何在保持宽高比的同时调整图层大小以适应当前画布?

我实际上是在我的Canvas上设置固定大小并将图像作为图层导入到我的项目中。我当时希望做的是将这个大得多的图像向下缩放,以便在保留宽高比的情况下适合Canvas。我找到了一种缩放Canvas以适应图层的方法,但这不是我想要的。

非常感谢任何帮助。

6 个答案:

答案 0 :(得分:10)

这很容易做到,但是在程序用户界面中可以选择的数百个选项中,它并没有“当选”。

出路是使用程序的脚本功能来执行操作: 必须在程序上确定的是图像/层的比例是否更大 在宽度或高度上,并使用此比例来缩放图层,然后使图层居中。

为了您的方便,我在一行中为此编写了一些Python代码,您可以在python控制台上复制和粘贴(filters-> python-> console)以应用效果 在最近打开的图像的顶层。

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脚本。 只需检查插件目录的edit-> preferences-> folders->插件, 将内容作为文件粘贴到那里(如果在Windows上,文件必须具有“.py”扩展名。在Linux和Mac OS上,任何扩展都可以,但你必须提供文件 “exectuable”属性“)。

重新启动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()

请注意,它与上面的代码相同,但GIMP现在提供“img”和“layer” 从菜单中选择动作时,还有两个额外的呼叫 scalignand centering作为单一动作“撤消” - 剩下的代码只是需要注册的锅炉板 GIMP的功能

答案 1 :(得分:10)

由于某些原因,该功能不在gimp中。没有任何脚本的替代方案是:

Layer -> Scale Layer

答案 2 :(得分:8)

使用Image -> Canvas收缩我的画布后(并根据需要对图层居中),Layer -> Layer to Image Size完成了诀窍(没有缩放图像)。这是与gimp 2.8.16

答案 3 :(得分:1)

图层 > 缩放图层对我来说效果很好。

答案 4 :(得分:0)

  1. 在工具箱上选择比例图层
  2. 点击您要缩放的图像/图层
  3. 在图层的左侧选项中,选择选择而不是图层/路径
  4. 然后调整比例尺。
  5. 调整大小后选择确定。
  6. 右键单击图像,然后选择“图像”>“使图像适合所选内容”。
  7. 再次右键单击,选择“图层”>“使图层适合所选内容”。

答案 5 :(得分:0)

从GIMP 2.10开始,默认情况下,它包含在GIMP的Layer -> Layer to Image Size