PyGIMP: PythonでGIMPを自在に操る！

## はじめに

GIMPは、高機能で無料の画像編集ソフトとして人気ですが、Pythonで自動化できたらもっと便利だと思いませんか？PyGIMPは、そんな願いを叶える夢のプロジェクトです。Pythonの力でGIMPの機能をフル活用し、画像処理を自由自在に操れるようになります！

## PyGIMPが切り開く新世界

PyGIMPは、PythonとGIMPの橋渡し的存在です。具体的には、次のようなことができます。

* **PythonスクリプトからGIMPの機能を呼び出し:**  画像のサイズ変更やフィルター処理など、GIMPでできることは、ほぼPythonから実行可能です。
* **コマンドラインからのGIMP操作:**  普段使い慣れたコマンドラインからGIMPを操作できるため、作業効率が大幅に向上します。
* **画像処理の自動化:**  繰り返し行う作業や複雑な処理を自動化することで、時間と労力を大幅に削減できます。

## デモ

百聞は一見に如かず！まずは、実際の動作をご覧ください。

<blockquote class="twitter-tweet" data-media-max-width="800"><p lang="ja" dir="ltr">ComfyUIとGIMPを連携させるための下準備⑫<br>PyGIMPをパッケージとして利用するようなサンプルコードも完成！！<br>あとはどう設計して接続するかだ！！！ <a href="https://t.co/wOZqNIEy13">https://t.co/wOZqNIEy13</a> <a href="https://t.co/RZobU7OAuk">pic.twitter.com/RZobU7OAuk</a></p>&mdash; Maki@Sunwood AI Labs. (@hAru_mAki_ch) <a href="https://twitter.com/hAru_mAki_ch/status/1814504655134904729?ref_src=twsrc%5Etfw">July 20, 2024</a></blockquote> 

## さっそく始めよう！

### 環境構築

PyGIMPを使うには、以下の手順で環境を整える必要があります。

1. **GIMPのインストール**: まずはGIMPをインストールしましょう。公式サイトからダウンロードできます。
2. **Pythonのインストール**: 次に、Pythonをインストールします。PyGIMPはPython 3.8以上に対応しています。
3. **PyGIMPのインストール**: 最後に、PyGIMPをインストールします。pipコマンドを使って簡単にインストールできます。

```bash
pip install pygimp-labs
```

### PyGIMPの基本的な使い方

それでは、PyGIMPを使って簡単な画像処理を行ってみましょう。

#### 設定ファイルの準備

PyGIMPでは、`gimp_script_config.json`という設定ファイルを使います。このファイルに、Pythonスクリプトへの引数を記述します。

```json
{
  "arguments": {
    "font_size": "78",
    "input_image": "asset\\input\\input.png",
    "output_path": "asset\\output\\out2.png",
    "text": "GIMPを使用して\\nCLIから画像に\\nテキストをオーバーレイする方法"
  },
  "script_path": "script\\gimp_script_template.py"
}
```

#### Pythonスクリプトの作成

次に、`gimp_script_template.py`のようなPythonスクリプトを作成します。このスクリプトでは、GIMPの機能を呼び出す処理を記述します。

```python
# -*- coding: utf-8 -*-

from __future__ import print_function, unicode_literals
import sys
from gimpfu import *
import json

# JSONファイルから設定を読み込む
CONFIG_PATH = r"gimp_script_config.json"

with open(CONFIG_PATH, "r") as f:
    CONFIG = json.load(f)

# 引数を取得
ARGS = CONFIG["arguments"]

# ... GIMPの機能を呼び出す処理 ... 

pdb.gimp_quit(1)
```

#### 実行

準備ができたら、コマンドラインから以下のコマンドを実行します。

```bash
pygimp-labs
```

PyGIMPは、コマンドライン引数で動作をカスタマイズできます。

| 引数 | 説明 | デフォルト値 |
|---|---|---|
| `--font_size` | テキストのフォントサイズ | `78` |
| `--input_image` | 入力画像のパス | `asset\input\input.png` |
| `--output_path` | 出力画像のパス | `asset\output\out2.png` |
| `--text` | 画像にオーバーレイするテキスト | `"GIMPを使用して\nCLIから画像に\nテキストをオーバーレイする方法"` |
| `--gimp` | GIMP実行ファイルのパス | `"gimp-console-2.10.exe"` |
| `--log` | ログファイルのパス | `"gimp_script.log"` |
| `--config` | 設定ファイルのパス | `"gimp_script_config.json"` |

例えば、フォントサイズを100に変更したい場合は、以下のように実行します。

```bash
pygimp-labs --font_size 100
```

### PyGIMPを支える技術

PyGIMPは、いくつかの素晴らしい技術の上に成り立っています。

* **GIMP**: 高機能でオープンソースの画像編集ソフト。PyGIMPは、GIMPの持つ豊富な機能をPythonから利用できるようにします。
* **Python**: シンプルで分かりやすい構文が特徴のプログラミング言語。PyGIMPは、Pythonを使ってGIMPを簡単に操作できるようにします。
* **JSON**: データを記述するためのフォーマット。PyGIMPは、設定ファイルにJSONを使用することで、柔軟な設定を可能にしています。

## 開発の舞台裏

PyGIMPの開発は、GitHub上のオープンソースプロジェクトとして行われています。

* **リポジトリ:** https://github.com/Sunwood-ai-labs/PyGIMP
* **バグ報告:** https://github.com/Sunwood-ai-labs/PyGIMP/issues

## 開発を加速させるAIの力

PyGIMPの開発には、AI技術も積極的に活用されています。

* **Claude.ai**: リリースノートやREADME、コミットメッセージの自動生成など、様々な場面で開発を支援しています。
* **ChatGPT4**: コードの自動生成やドキュメント作成など、開発効率を向上させています。

これらのAI技術により、開発者はより創造的な作業に集中できるようになり、PyGIMPの進化を加速させています。

## まとめ

PyGIMPは、Pythonの力でGIMPの可能性を無限に広げるプロジェクトです。ぜひ、PyGIMPを試して、画像処理の新しい扉を開いてみてください。そして、もしPyGIMPが気に入ったら、GitHubでスターを付けて応援してください！

<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>