2014-01-09 71 views
13

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

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

我基本上在我的画布上设置一个固定的大小,并将图像作为图层导入到我的项目中。然后,我想要做的就是缩小这张大得多的图像,以便可以在保留宽高比的情况下适合Canvas。我已经找到了缩放Canvas以适合图层的方法,但这不是我正在寻找的。

任何帮助将不胜感激。

回答

6

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

的出路是使用该程序的脚本功能执行动作: 什么必须programatcially确定是图像/层之比是否在宽度或高度大 ,并使用该比例刻度临时图层,然后居中该图层。

为了您的方便,我在一行中为此写了一些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) 

因为这是可以做到的,但不实用,更因为它不会让你 挑选图片或层来调整,我格式化它作为一个Python的脚本为GIMP为好。 只需检查您的编辑 - >首选项 - >文件夹 - >插件为您的插件目录, 粘贴内容作为文件在那里(如果在Windows上,该文件必须具有“.py”扩展名。 。和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() 

请注意,它与上面的代码相同,但是当从菜单中选择操作时,“img”和“layer”现在由GIMP 支持,并且还有两个额外的调用该 两个scalignand定心是“未完成”作为一个单一的动作 - 剩余码justtheneeded锅炉板注册 功能与GIMP

+1

这是辉煌的。非常感谢你。为什么这不是Gimp的标准内容,超越了我。 – jezzipin

8

即功能不是在辫形出于某种原因。没有任何脚本一种替代方案是:

Layer -> Scale Layer 
4

萎缩使用Image -> Canvas我的画布(和定心层如所期望)后,将Layer -> Layer to Image Size确实起作用(无调整图像)。这是与gimp 2.8.16