6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【GIMP】【Python-Fu】画像を賽の目状に分割する

Posted at

バージョン

GIMP 2.10.12

はじめに

ツクールなどの画像素材でよく見られる、スプライトアニメーション素材や表情差分素材を個別に切り分けたいことがまれにあります。
今回はそのような1枚のセット画像をGIMPで賽の目状に分割するやり方の紹介です。

goal.png

なお、今回の素材はぴぽや倉庫様からお借りしました。

本題に入る前に…

素材を使おうとしているツールに応じて、そもそも画像ファイル自体を分割する必要があるのかは一度調べておいた方がいいかもしれません。
例えばUnityであれば、元よりそのような素材に対応していて、画像のインポート設定で分割画像として扱うことができます。(こちらの記事など参考になります。)

手順

流れとしては

  1. グリッド状のガイドを作成
  2. ガイドに沿ってスライス画像を生成
  3. 各画像を保存
    となります。

【参考】ガイドを作成(手作業)

下記を繰り返し、ガイドを追加していくことでグリッド状のガイドにできます。が、手作業で繰り返すのは面倒なので、後述のようにPython-Fuを使って一気にやってしまいましょう。(次の項目で説明)

  • メニューから「画像」→「ガイド」→「新規ガイド」を選択します。

guide01.png

  • 方向とガイドの位置を指定して「OK」を押します。

guide02.png

  • ガイドができます。

guide03.png

グリッド状のガイドを作成(Python-Fu)

GIMPにはPython-Fuという、Pythonスクリプトで操作できる機能があります。(便利!)

  • メニューから「フィルター」→「Python-Fu」→「コンソール」を選択します。

guide04.png

  • Python コンソール画面が開くので続くスクリプトを実行していきます。各行で何をやっているかについては、Python講座を取り扱ったサイトや書籍等と合わせてライブラリリファレンスマニュアルを見て頂くのが早いかと思います。

guide05.png

実行するスクリプト例
column = 6 # 切り分けたい列数
row = 12 # 切り分けたい行数
image = gimp.image_list()[0]
step = image.width / column
x = step
while x < image.width:
	pdb.gimp_image_add_vguide(image, x)
	x = x + step

step = image.height / row
y = step
while y < image.height:
	pdb.gimp_image_add_hguide(image, y)
	y = y + step

  • できました。

guide06.png

ガイドに沿ってスライス画像を生成

  • メニューから「画像」→「Slice Using Guides」を実行します。

slice01.png

  • ガイドに沿って分割されます。各画像がタブとして上に表示されているのが分かると思います。

slice02.png

各画像を保存

メニューから「ファイル」→「エクスポート」で一つずつ保存できますが、一括保存はないようなので、ここでもPython-Fuが活躍します。

  • Python コンソール画面で次のスクリプトを実行していきます。(元の画像は保存する必要はないので最初に閉じておきましょう。)
実行するスクリプト例
import os
path = "F:\\balloon" # 保存先
count = 0
for image in gimp.image_list():
	count += 1
	file = os.path.join(path, str(count).zfill(2) + ".png")
	pdb.gimp_file_save(image, image.active_layer, file, "")

  • 指定したフォルダにどんどん吐き出されていきます。めでたく分割することができました。

result.png

おわりに

フリーで高機能なことで有名なGIMPですが、人気のPythonでスクリプトを書けるのは非常に嬉しいですね。
もっと使いこなせるようになりたいと思いました。

参考

6
5
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?