2014-01-09 97 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