【问题标题】:Resize image to fit canvas - Gimp调整图像大小以适合画布 - Gimp
【发布时间】:2014-01-27 20:57:24
【问题描述】:

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

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

我实际上是在我的画布上设置一个固定大小并将图像作为图层导入到我的项目中。然后我希望做的是缩小这个更大的图像,以便可以在保留纵横比的情况下适合画布。我找到了一种缩放 Canvas 以适应图层的方法,但这不是我想要的。

任何帮助将不胜感激。

【问题讨论】:

    标签: resize image-resizing gimp


    【解决方案1】:

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

    Layer -> Scale Layer
    

    【讨论】:

      【解决方案2】:

      这很容易做到,但在程序 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的功能

      【讨论】:

        【解决方案3】:

        使用Image -&gt; Canvas 缩小我的画布(并根据需要将图层居中)后,Layer -&gt; Layer to Image Size 成功了(不缩放图像)。这是 gimp 2.8.16

        【讨论】:

          【解决方案4】:

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

          【讨论】:

          • 我认为截图在这里会很有用
          猜你喜欢
          • 2014-05-07
          • 2011-12-06
          • 2018-07-11
          • 1970-01-01
          • 1970-01-01
          • 2012-05-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多