\r\n\r\n
写真編集は、特に大きなアルバムの画像を扱う場合は、多くの工程を繰り返すことが多いものです。スクリプトに手を出す気があるなら、GIMPを使ってこれらの操作を自動化することで、時間と労力を節約することができます。
Pythonを使ったGIMPのスクリプトは簡単ではありませんが、ノウハウを学ぶ覚悟があれば、とてもやりがいのあるものです。ここでは、ごく基本的なスクリプトで始める方法を紹介します。
本格的にプロジェクトに取り組む前に、ある程度の基礎固めが必要です。まず、テキストエディタを開き、以下のコードをコピー&ペーストしてください。
#!/usr/bin/python from gimpfu import * def first_plugin(timg, tdrawable): print "Hello, world!" register( "hello_world", "Presents a Hello, World! message", "Presents a Hello, World! message", "Brad Jones", "Brad Jones", "2017", "<Image>/Image/Hello, World!", "RGB*, GRAY*", [], [], first_plugin) main()ここでは、上記の内容を簡単に説明します。最初の2行はスクリプトを初期化し、いくつかの便利なライブラリにアクセスできるようにします。def firstu pluginの後のコードのセクションには、与えられたGIMPの指示が含まれています。register の後に続く情報は、GIMP がプラグインについて知る必要のあるすべての情報です。
これは、私たちのスクリプトを登録するためにGIMPに提供する必要がある情報です:.
最後に、main()を呼び出す必要があります。
スクリプトを保存し、'Save as type' ドロップダウンリストからすべてのファイルを選択し、ファイル名に拡張子 .py が含まれていることを確認します。
次に、このファイルをGIMPのプラグインフォルダ(WindowsではProgram Files> GIMP 2> lib> GIMP> 2.0, MacではThinkPad 2.8)に配置します。スクリプト)をMac上で実行します。この操作を行うには、管理者権限が必要な場合があります。
GIMPを初期化し、画像メニューを開くと、Hello World!
さて、次はこのスクリプトをもう少し使えるようにする番です。
では、実際に実用的な動作をするようにスクリプトを書き直します。もう一度テキストファイルを開き、次のコードをコピー&ペーストしてください。
#!/usr/bin/env pythonfrom gimpfu import *def test_script(customtext, font, size): img = gimp.Image(1, 1, RGB) layer = pdb.gimp_text_fontname(img, None, 0, 0, customtext, 10, True, size, PIXELS, font) img.resize(layer.width, layer.height, 0, 0) gimp.Display(img) gimp.displays_flush()register( "python_test", "TEST", "TEST", "Brad Jones", "Brad Jones", "2017", "TEST", "", [ (PF_STRING, "customtext", "Text string", 'Scripting is handy!'), (PF_FONT, "font", "Font", "Sans"), (PF_SPINNER, "size", "Font size", 100, (1, 3000, 1)), ], [], test_script, menu="<Image>/File/Create")main()hello, world!よりも少し複雑ですが、構造は非常に似ています。まず、画像を作成します。
img = gimp.Image(1, 1, RGB)そして、ユーザーから提供されたパラメータに従ってテキストを追加していきます。
layer = pdb.gimp_text_fontname(img, None, 0, 0, customtext, 10, True, size, PIXELS, font)次に、文字の大きさに合わせて画像のサイズを変更します。
img.resize(layer.width, layer.height, 0, 0)最後に、GIMPに画像を画面に表示するように指示します。
gimp.Display(img)gimp.displays_flush()あとは、GIMPが必要とする登録情報の追加と、これまで入れていなかったパラメータ設定の追加だけです。
[ (PF_STRING, "customtext", "Text string", 'Scripting is handy!'), (PF_FONT, "font", "Font", "Sans"), (PF_SPINNER, "size", "Font size", 100, (1, 3000, 1)), ],救うべき世界を救え!スクリプトをプラグインフォルダに移動してGIMPを再起動し、File> Create> TESTでプラグインを試してみてください。
様々なパラメータを設定するウィンドウが表示されます。
OKをクリックすると、このような画像が作成されます。
これは、GIMPでスクリプトを使用して、いくつかの異なる操作からなるプロセスを自動化する方法を示しています。では、すでに開いている画像に変更を加えるスクリプトを書いてみましょう。
GIMPでPythonを使ったスクリプトに慣れれば、画像に様々な調整を自動で行うことも可能です。しかし、ここではできるだけシンプルに、現在のレイヤーの色を反転させるスクリプトを実装することから始めることにします。
まずは、もう一度テキストエディタを開き、以下のスクリプトをコピー&ペーストしてください。
#!/usr/bin/env pythonfrom gimpfu import *def invert_current_layer(img, layer): pdb.gimp_invert(layer) register( "python_fu_invert_current_layer", "Invert layer", "Invert colors in the current layer", "Brad Jones", "Brad Jones", "2017", "<Image>/Filters/Custom/Invert current layer", "*", [], [], invert_current_layer) main()これは、先ほど作成したスクリプトに起因するものです。最初の数行のコードでいくつかの土台を作り、最後の数行で登録を担当します。
def invert_current_layer(img, layer): pdb.gimp_invert(layer)プロセスを定義し、GIMP にどのコンポーネントを参照するかを伝え、pdb.gimpU の反転表示プログラムを使って色を調整しているところです。これを.pyファイル形式で保存し、プラグインフォルダに追加してから、GIMPを開いて動作を確認します。
フィルター" > "カスタム" > "現在のレイヤーを反転 "に移動します。
上記のような結果が得られるはずです。もちろん、GIMPで反転操作を行うことはすでに比較的容易ですが、これはあくまで出発点に過ぎません。自分で脚本を書くことのメリットは、自分にぴったり合ったものを作れることです。
GIMPでのスクリプトの基本を理解したら、いよいよ実験開始です。自動化するために、どのような処理をすることが多いかを考えることは有効です。次に厄介なのは、そのアイデアを実現するためにコードをどう使うか、ということです。
幸いなことに、GIMPがその手助けをしてくれる。Help" > "Process Explorer "に移動すると、使用可能なすべてのプロセスのリストにアクセスすることができるようになります。
プロシージャーブラウザーは、プロシージャーそのものを一覧表示するだけでなく、コード内でどのパラメータを供給する必要があるかという情報も提供します。
プロシージャの全リストをスクロールしたり、検索バーを使ってフィールドを絞り込むことができます。その後、プロシージャ名とパラメータ**をスクリプトで入力するだけです。
この情報は、スクリプトを書くときに非常に役に立ちます。簡単なものから始めて、いつの間にか本当に便利な自動処理になっているはずです。
GIMPスクリプトを書くのに助けが必要ですか?または、他のユーザーと共有したい提案がありますか?いずれにせよ、以下のコメント欄で会話に加わってみてはいかがでしょうか?
写真提供:Volkova Vera/Shutterstock