2014-01-09 32 views
13

現在、いくつかの画像のサイズを変更するためにGimpを使用しています。私はウェブ開発者ですが、イメージ操作ソフトウェアはデザイナーが提供するイメージのほとんどを使用していないので、Gimpツールは私にはあまり馴染みがありません。私はすべてのチュートリアルやGimpサイトのガイドを見てきましたが、最も簡単な質問に対する答えは見つかりません:キャンバスに合わせてレイヤーをサイズ変更 - Gimp

アスペクト比を維持しながら現在のキャンバスに合わせてレイヤーのサイズを変更するにはどうすればよいですか?

私は本質的にキャンバスに固定サイズを設定し、画像をレイヤーとしてプロジェクトにインポートしています。私がしたいことは、キャンバス内に縦横比を維持してフィットできるように、このより大きなイメージをスケールダウンすることです。私はキャンバスをレイヤーに合わせてスケーリングする方法を見つけましたが、これは私が探しているものではありません。

ご協力いただければ幸いです。

答えて

6

これは簡単ですが、プログラムのUIに表示される可能性のある何百ものオプションの中で、そこには「選出」されていませんでした。 programatcially決定された画像/層の比率が幅または高さに 大きいか否かでなければならないもの 、及びスケールにこの比率を使用:

方法アウトは、アクションを実行するプログラムのスクリプト機能を使用することですその層を中心に配置します。

あなたの便宜のために、私はこの行を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スクリプトとしてフォーマットさ。 プラグインディレクトリの編集 - >環境設定 - >フォルダ - >プラグインを確認してください。 はその中にファイルとして内容を貼り付けます(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() 

これは上記と同じコードですが、メニューからアクションを選択するときにGIMP によって「img」と「layer」が追加され、2つの追加コールがありますその 両方scalignandセンタリングは、単一のアクションとして「取り消し」である - 残りのコードが何らかの理由でGIMPにされていない機能GIMP

+1

これは素晴らしいです。どうもありがとうございました。なぜこれがGimpの標準に含まれていないのかは、私が理解できないものです。 – jezzipin

8

と 機能を登録するjusttheneededボイラープレートです。任意のスクリプトのない代替がある:

Layer -> Scale Layer 
4

Image -> Canvasを使用して、私のキャンバスを縮小(および必要に応じて層を中心に)した後、Layer -> Layer to Image Sizeは(画像を拡大縮小せず)のトリックを行いました。これはギンプです。2.8.16

関連する問題