スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Python-FuによるGIMPプログラミング Part1

更新前に、30秒ドローイング1時間耐久をやったせいで更新する前に瀕死
どうも、砂塵です。

さて、Python-FuによるGIMPプログラミングと言うわけで、1回目は普通インストールから入る訳ですが、
簡潔に済ませます。インストール作業が分からないレベルの方は申し訳ありませんが、ご遠慮願います。

なお、Pythonのインストールについては当ブログの記事で以前、扱いましたので、
インストール済みであると仮定して話を進めます。

インストール項目
サイトURL:PyGTK Downloads
・GTK+(The GIMP Toolkit)
・PyGObject
・PyGTK

この3つをインストールした後にGIMPをインストールすることでPython-Fuが利用可能になります。

※GIMPが先にインストールされている場合

 GIMPを再インストールをすることでPython-Fuが認識されます。
 スクリプトの追加などをしている場合はフォルダをバックアップしておくと便利です。

以上のインストールが無事成功している場合、GIMPのフィルタメニューにPython-Fu→コンソールが追加されているはずです。

pyt-f001.jpg
※私の環境では他にもプラグインが入っているので、画像と完全に一致している必要はありません。

インストールが済んだら、まずはコンソールから操作してみましょう。

以降は続きを読むからどうぞ。


Python-Fu→コンソールを実行すると、コマンドコンソールが表示されます。
以前操作したコマンドプロンプトのGIMP版みたいなものだと思って下さい。
ここからGIMPに直接命令を送ることができ、ここで行う作業をファイルにまとめたものがスクリプトファイルとなります。

まず、適当なファイルを開いてみましょう。
以下のコマンドを一行ずつ入力してみて下さい。(コピペでも可能)
なお、"c:/test.jpg"のところには画像ファイルの場所になりますので適宜置き換えて実行して下さい。


from gimpfu import *
img = pdb.gimp_file_load("c:/test.jpg" , '')
img = pdb.gimp_display_new(img)


上手く行けばGIMPに画像が読み込まれたはずです。
これは、1行目にgimp操作の機能を読み込み、2行目でimgに画像を読み込み。
そして、3行目でGIMPに転送を行っています。

注意点としては、画像の処理を行う場合、imgに対して処理を行うことになるのですが、
pdb.gimp_display_new(img)で画像を転送した時点でimgに対する操作が行えなくなります。
そのため、画像処理行う場合。

1. 画像の読み込み
2. 画像処理
3. 画像の転送

というサイクルを持つことになります。
一度転送した画像に対して処理をしたい場合、
pdb.gimp_display_delete ()を用いて一度閉じてから処理を行い、再転送します。

以下に画像サイズを半分にするスクリプトを示します。
一度コンソールを閉じて開き直したうえで実行して下さい。

from gimpfu import *
img = pdb.gimp_file_load("c:/cui_cmd/test.jpg" , '')
img.scale(int(img.width*0.5) , int(img.height*0.5))
img = pdb.gimp_display_new(img)


本来、3行目で画像のサイズの2分の1(小数点以下切捨て)にスケーリングしています。
この例から分かる通り、読み込んだ画像の幅をimg.width、高さimg.heightで取得可能です。

なお、今回は簡単に実行するためにコンソールでしたが、
実際、スクリプト書く場合、register()という登録関数を最後に呼び出す仕様になっています。

その時にはスクリプトファイルに書かれた「まとまった操作」を戻せるように img.undo_group_start()と img.undo_group_end()で処理全体を囲むことで、複数の処理を1つの処理として扱うことができます。

私自身、よそのPython-fuコードと英語マニュアルを読みながら手探りで調べている感じなので今回はこれぐらいでご勘弁下さい。

うーむ。2時間だけだとやっぱり、対した記事書けないね。ちょっと裏で書溜めしておきます。

それではまた次回。

スポンサーサイト

コメントの投稿

非公開コメント

twitter
    follow me on Twitter
    プロフィール

    砂塵

    Author:砂塵
    GIMP2でお絵描きしています。
    主にイラスト練習、プログラミングなどを扱っているブログです。

    Skype始めました。
    SkypeID:sazinn-gimp
    出没時間:平日21~26時、休日(土・日)

    Pixivはじめました
    微エロな絵を載せることがありますので、そういうのが苦手な方や嫌悪感を覚える方はご注意ください。

    カテゴリ
    リンク
    最新記事
    月別アーカイブ
    最新コメント
    RSSリンクの表示
    FC2カウンター
    FC2ブログランキング

    FC2Blog Ranking

    参加ブログカテゴリ
    にほんブログ村 IT技術ブログ プログラム・プログラマーへ
    にほんブログ村 イラストブログ イラスト練習へ
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。