無料の画像編集ソフトといえば、「GIMP」。Photoshopに負けないくらい高機能なので、これがあれば特に困ることはありません。
ただし、かゆいところに手が届かない、微妙に使いにくいところがあるんですよね…。

無料ソフトあるあるですね。…いや…GIMPあるあるか?
画像を等間隔で並べたいときや、中央に画像を配置したいときは、「ガイド」を引くと便利です。
しかしGIMPの場合、ガイド線(位置決め)を一本ずつ引いていく必要があります。
これが意外と手間のかかる作業!!
本記事ではそういった悩みやストレスを解消するために、GIMPのガイドを一括作成するプラグインを作成しました。
「プラグインってなに?」
「プラグインの導入方法がわからない」
って方でも、図をたくさん使用して説明していますので、初めての方でもわかりやすいかと思います。
それでは一緒にやっていきましょう!
GIMP本体
GIMP本体が必要な場合は、こちらからダウンロードしてください。
GIMP2
※最終安定バージョンは、GIMP 2.10.38です。
GIMP3
一括ガイド作成プラグイン for GIMP
作成の際、こちらのサイトを参考にさせて頂きました。ありがとうございます。この場をお借りして、心より感謝いたします。

GIMP2でかなり便利だったので、GIMP 3でも必須の機能だと感じ、移植してみました!!
機能
クリックするだけで、画像に複数のガイドを追加できます。
ガイドの位置も細かく設定可能です。

ダウンロード
GIMP2と3では、仕様がまったく別物のため、プラグインを共通化できません。
そのため、ご利用のGIMPバージョンにあわせて、プラグインをダウンロードしてください。
※セキュリティ面を考慮して、Google Driveにファイルを保管しています。
導入方法
ダウンロードファイルを解凍後、フォルダごとGIMPのプラグインフォルダに設置してください。詳しくは、こちらで解説しています。


フォルダとプラグインが違う名前になっていて、読み込まないことに気づかず、無駄な時間を過ごしました…。注意されたし!!
ソースコード
ソースコードも掲載しておきます。
ぜひ、自分色にアレンジしてみてください。
GIMP2 以前
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#
# GIMP 2.x Python Plugin for Guide Generation
import sys
import os
from gimpfu import *
def N_(message): return message
def _(message): return message
def generate_guides_slider_2_x(img, drawable,
H0,
H1,
H2,
H3,
H4,
H5,
H6,
H7,
H8,
V0,
V1,
V2,
V3,
V4,
V5,
V6,
V7,
V8):
gimp.progress_init(_("ガイドを生成中..."))
gimp.progress_update(0.0)
image_width = img.width
image_height = img.height
pdb.gimp_context_push()
pdb.gimp_image_undo_group_start(img)
try:
if H0 >= 0.0:
pdb.gimp_image_add_hguide(img, int(image_height * H0 / 100.0))
if V0 >= 0.0:
pdb.gimp_image_add_vguide(img, int(image_width * V0 / 100.0))
gimp.progress_update(0.2)
if H1 >= 0.0:
pdb.gimp_image_add_hguide(img, int(image_height * H1 / 100.0))
if V1 >= 0.0:
pdb.gimp_image_add_vguide(img, int(image_width * V1 / 100.0))
if H2 >= 0.0:
pdb.gimp_image_add_hguide(img, int(image_height * H2 / 100.0))
if V2 >= 0.0:
pdb.gimp_image_add_vguide(img, int(image_width * V2 / 100.0))
gimp.progress_update(0.4)
if H3 >= 0.0:
pdb.gimp_image_add_hguide(img, int(image_height * H3 / 100.0))
if V3 >= 0.0:
pdb.gimp_image_add_vguide(img, int(image_width * V3 / 100.0))
if H4 >= 0.0:
pdb.gimp_image_add_hguide(img, int(image_height * H4 / 100.0))
if V4 >= 0.0:
pdb.gimp_image_add_vguide(img, int(image_width * V4 / 100.0))
gimp.progress_update(0.6)
if H5 >= 0.0:
pdb.gimp_image_add_hguide(img, int(image_height * H5 / 100.0))
if V5 >= 0.0:
pdb.gimp_image_add_vguide(img, int(image_width * V5 / 100.0))
if H6 >= 0.0:
pdb.gimp_image_add_hguide(img, int(image_height * H6 / 100.0))
if V6 >= 0.0:
pdb.gimp_image_add_vguide(img, int(image_width * V6 / 100.0))
if H7 >= 0.0:
pdb.gimp_image_add_hguide(img, int(image_height * H7 / 100.0))
if V7 >= 0.0:
pdb.gimp_image_add_vguide(img, int(image_width * V7 / 100.0))
gimp.progress_update(0.8)
if H8 >= 0.0:
pdb.gimp_image_add_hguide(img, int(image_height * H8 / 100.0))
if V8 >= 0.0:
pdb.gimp_image_add_vguide(img, int(image_width * V8 / 100.0))
gimp.progress_update(1.0)
except Exception as e:
gimp.message(_("ガイド生成中にエラーが発生しました: %s") % str(e))
pdb.gimp_image_undo_group_end(img)
pdb.gimp_context_pop()
return False
pdb.gimp_image_undo_group_end(img)
pdb.gimp_context_pop()
return True
register(
"generate_guides_slider_2_x_gimp2",
N_("ガイド一括生成 ※数値マイナスで非表示"),
_("設定した数値の位置にガイドを一括生成します。"),
"ぐうてる",
"ぐうてる",
"2025",
"<Image>/プラグイン/ガイド一括生成",
"RGB*, GRAY*",
[
(PF_FLOAT, "H0", N_("水平ガイド-0 (初期値: 0%)"), 0.0, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "H1", N_("水平ガイド-1 (初期値: 12.5%)"), 12.5, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "H2", N_("水平ガイド-2 (初期値: 25%)"), 25.0, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "H3", N_("水平ガイド-3 (初期値: 37.5%)"), 37.5, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "H4", N_("水平ガイド-4 (初期値: 50%)"), 50.0, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "H5", N_("水平ガイド-5 (初期値: 62.5%)"), 62.5, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "H6", N_("水平ガイド-6 (初期値: 75%)"), 75.0, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "H7", N_("水平ガイド-7 (初期値: 87.5%)"), 87.5, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "H8", N_("水平ガイド-8 (初期値: 100%)"), 100.0, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "V0", N_("垂直ガイド-0 (初期値: 0%)"), 0.0, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "V1", N_("垂直ガイド-1 (初期値: 12.5%)"), 12.5, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "V2", N_("垂直ガイド-2 (初期値: 25%)"), 25.0, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "V3", N_("垂直ガイド-3 (初期値: 37.5%)"), 37.5, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "V4", N_("垂直ガイド-4 (初期値: 50%)"), 50.0, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "V5", N_("垂直ガイド-5 (初期値: 62.5%)"), 62.5, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "V6", N_("垂直ガイド-6 (初期値: 75%)"), 75.0, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "V7", N_("垂直ガイド-7 (初期値: 87.5%)"), 87.5, (-100.0, 100.0, 0.1)),
(PF_FLOAT, "V8", N_("垂直ガイド-8 (初期値: 100%)"), 100.0, (-100.0, 100.0, 0.1)),
],
[],
generate_guides_slider_2_x,
domain=("gimp20-python", gimp.locale_directory)
)
main()
GIMP3 以降
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
import gi
gi.require_version('Gimp', '3.0')
gi.require_version('GimpUi', '3.0')
from gi.repository import Gimp
from gi.repository import GimpUi
from gi.repository import GLib
from gi.repository import GObject
def N_(message): return message
def _(message): return GLib.dgettext(None, message)
def generate_guides_slider(procedure, run_mode, image, drawable, config, data):
if run_mode == Gimp.RunMode.INTERACTIVE:
GimpUi.init('plug-in-guide-generator-slider-python')
dialog = GimpUi.ProcedureDialog(procedure=procedure, config=config)
dialog.fill([
"TEXT",
"H0",
"H1",
"H2",
"H3",
"H4",
"H5",
"H6",
"H7",
"H8",
"V0",
"V1",
"V2",
"V3",
"V4",
"V5",
"V6",
"V7",
"V8"
])
if not dialog.run():
return procedure.new_return_values(Gimp.PDBStatusType.CANCEL, GLib.Error())
Gimp.progress_init(_("ガイドを生成中..."))
Gimp.progress_update(0.0)
image_width = image.get_width()
image_height = image.get_height()
Gimp.context_push()
image.undo_group_start()
try:
H0 = config.get_property('H0')
H1 = config.get_property('H1')
H2 = config.get_property('H2')
H3 = config.get_property('H3')
H4 = config.get_property('H4')
H5 = config.get_property('H5')
H6 = config.get_property('H6')
H7 = config.get_property('H7')
H8 = config.get_property('H8')
V0 = config.get_property('V0')
V1 = config.get_property('V1')
V2 = config.get_property('V2')
V3 = config.get_property('V3')
V4 = config.get_property('V4')
V5 = config.get_property('V5')
V6 = config.get_property('V6')
V7 = config.get_property('V7')
V8 = config.get_property('V8')
if H0 >= 0.0:
image.add_hguide(int(image_height * H0 / 100.0))
if V0 >= 0.0:
image.add_vguide(int(image_width * V0 / 100.0))
Gimp.progress_update(0.2)
if H1 >= 0.0:
image.add_hguide(int(image_height * H1 / 100.0))
if V1 >= 0.0:
image.add_vguide(int(image_width * V1 / 100.0))
if H2 >= 0.0:
image.add_hguide(int(image_height * H2 / 100.0))
if V2 >= 0.0:
image.add_vguide(int(image_width * V2 / 100.0))
Gimp.progress_update(0.4)
if H3 >= 0.0:
image.add_hguide(int(image_height * H3 / 100.0))
if V3 >= 0.0:
image.add_vguide(int(image_width * V3 / 100.0))
if H4 >= 0.0:
image.add_hguide(int(image_height * H4 / 100.0))
if V4 >= 0.0:
image.add_vguide(int(image_width * V4 / 100.0))
Gimp.progress_update(0.6)
if H5 >= 0.0:
image.add_hguide(int(image_height * H5 / 100.0))
if V5 >= 0.0:
image.add_vguide(int(image_width * V5 / 100.0))
if H6 >= 0.0:
image.add_hguide(int(image_height * H6 / 100.0))
if V6 >= 0.0:
image.add_vguide(int(image_width * V6 / 100.0))
if H7 >= 0.0:
image.add_hguide(int(image_height * H7 / 100.0))
if V7 >= 0.0:
image.add_vguide(int(image_width * V7 / 100.0))
Gimp.progress_update(0.8)
if H8 >= 0.0:
image.add_hguide(int(image_height * H8 / 100.0))
if V8 >= 0.0:
image.add_vguide(int(image_width * V8 / 100.0))
Gimp.progress_update(1.0)
except Exception as e:
Gimp.message(_(f"ガイド生成中にエラーが発生しました: {e}"))
image.undo_group_end()
Gimp.context_pop()
Gimp.progress_end()
return procedure.new_return_values(Gimp.PDBStatusType.FAIL, GLib.Error.new_literal(GLib.Error, 0, str(e)))
image.undo_group_end()
Gimp.context_pop()
Gimp.progress_end()
return procedure.new_return_values(Gimp.PDBStatusType.SUCCESS, GLib.Error())
class GuideGeneratorSlider (Gimp.PlugIn):
def do_query_procedures(self):
return [ "plug-in-guide-generator-slider-python" ]
def do_set_i18n(self, name):
return False
def do_create_procedure(self, name):
procedure = Gimp.ImageProcedure.new(self, name,
Gimp.PDBProcType.PLUGIN,
generate_guides_slider, None)
procedure.set_image_types("*")
procedure.set_menu_label(_("ガイド一括生成"))
procedure.add_menu_path('<Image>/プラグイン/')
procedure.set_documentation(
_("設定した数値の位置にガイドを一括生成します。"),
_("設定した数値の位置にガイドを一括生成します。効率爆あがり!!"),
name
)
procedure.set_attribution("ぐうてる", "ぐうてる", "2025")
procedure.set_menu_label(_("ガイド一括生成 ※数値マイナスで、ガイド作成を無効化"))
procedure.add_double_argument ("H0", _("水平ガイド-0 (初期値: 0%)"), None,
-100.0, 100.0, 0.0, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("H1", _("水平ガイド-1 (初期値: 12.5%)"), None,
-100.0, 100.0, 12.5, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("H2", _("水平ガイド-2 (初期値: 25%)"), None,
-100.0, 100.0, 25.0, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("H3", _("水平ガイド-3 (初期値: 37.5%)"), None,
-100.0, 100.0, 37.5, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("H4", _("水平ガイド-4 (初期値: 50%)"), None,
-100.0, 100.0, 50.0, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("H5", _("水平ガイド-5 (初期値: 62.5%)"), None,
-100.0, 100.0, 62.5, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("H6", _("水平ガイド-6 (初期値: 75%)"), None,
-100.0, 100.0, 75.0, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("H7", _("水平ガイド-7 (初期値: 87.5%)"), None,
-100.0, 100.0, 87.5, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("H8", _("水平ガイド-8 (初期値: 100%)"), None,
-100.0, 100.0, 100.0, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("V0", _("垂直ガイド-0 (初期値: 0%)"), None,
-100.0, 100.0, 0.0, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("V1", _("垂直ガイド-1 (初期値: 12.5%)"), None,
-100.0, 100.0, 12.5, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("V2", _("垂直ガイド-2 (初期値: 25%)"), None,
-100.0, 100.0, 25.0, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("V3", _("垂直ガイド-3 (初期値: 37.5%)"), None,
-100.0, 100.0, 37.5, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("V4", _("垂直ガイド-4 (初期値: 50%)"), None,
-100.0, 100.0, 50.0, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("V5", _("垂直ガイド-5 (初期値: 62.5%)"), None,
-100.0, 100.0, 62.5, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("V6", _("垂直ガイド-6 (初期値: 75%)"), None,
-100.0, 100.0, 75.0, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("V7", _("垂直ガイド-7 (初期値: 87.5%)"), None,
-100.0, 100.0, 87.5, GObject.ParamFlags.READWRITE)
procedure.add_double_argument ("V8", _("垂直ガイド-8 (初期値: 100%)"), None,
-100.0, 100.0, 100.0, GObject.ParamFlags.READWRITE)
return procedure
Gimp.main(GuideGeneratorSlider.__gtype__, sys.argv)
プラグインの導入方法
GIMPのプラグイン導入は、ダウンロードしたファイルを特定のフォルダに置くだけです。
簡単ですので、ぜひやってみてください。
- 1プラグインをダウンロードする
本記事では、GIMP3に導入する手順で進めていきます。
※GIMP2はダウンロードするファイルが異なりますが、導入方法は変わりません。参考にしてください。 - 2ダウンロードしたファイルを解凍する
解凍すると、「Pythonファイル」が出てきます。
- 3GIMPのプラグインフォルダを確認する
GIMPを起動し、「編集」→「設定」にアクセスしてください。
「フォルダ」→「プラグイン」から、フォルダアドレスを選択後、右上のアイコンをクリックしてください。
初期状態では、以下の2ヶ所がプラグインフォルダとなっています。違いは以下のとおりです。どちらにプラグインを設置するか使い分けてください。
コンピュータ全体に適用する場合
GIMP2
C:\Program Files\GIMP 2\lib\gimp\2.0\plug-ins
GIMP3
C:\Program Files\GIMP 3\lib\gimp\3.0\plug-insユーザー毎に適用する場合
GIMP2
C:\Users\%USERNAME%\AppData\Roaming\GIMP\2.10\plug-ins
GIMP3
C:\Users\%USERNAME%\AppData\Roaming\GIMP\3.0\plug-insAppData フォルダは通常「隠しフォルダ」になっていて見えません。表示したい場合は、適当なフォルダから図のように「隠しファイル」にチェックを入れてください。
- 4プラグインをフォルダごと移動させる
開いたプラグインフォルダに、先程解凍したファイルをフォルダごと移動させてください。
以下のようになればOKです。
プラグイン導入は以上となります。
使い方
- 1GIMPを起動し、編集したい画像を開く
- 2プラグインを起動する
メニューバーの「プラグイン」→「ガイド一括生成」の順にアクセスします。
- 3ガイド位置を設定する
ガイドの番号と初期設定は、図のように対応しています。
ガイド位置は、画像サイズの割合で設定していきます。
水平ガイドは画像の上辺を基準に「0%」・中央「50%」・下辺「100%」
垂直ガイドは画像の左辺を基準に「0%」・中央「50%」・右辺「100%」ガイドが不要な場合は、数値をマイナスにしてください。
※マイナスであれば、どの値でも問題ありません。設定完了後、設定の保存をクリックしてください。
※設定の保存はGIMP3のみの機能となっています。GIMP2の場合は保存できません。
※以下の設定は、「画像の最外」と「中央」にガイドが入ります。GIMP2の場合、設定の保存ができないためGIMPを再起動すると設定がリセットされてしまいます。これは仕様なのでどうすることもできません…。
- 4ガイドを作成する
OKをクリックすると、設定した位置にガイドが作成されます。
プラグインの使い方は、以上となります。
覚えておくと便利な操作を書いておきますので、ご活用ください。
ガイドを全部削除したい場合
メニューバーの「画像」→「ガイド」→「すべてのガイドを削除」を選択してください。
保存した設定を読み出したい場合(GIMP3のみ)
プラグイン起動後、保存された設定を読み込むをクリックしてください。
初期設定に戻したい場合(GIMP3のみ)
まとめ
ここまで読んで頂き、ありがとうございます。
いかがでしたでしょうか。
GIMPは慣れればめちゃくちゃ使いやすくて、Photoshopなどの高級ソフトを購入する必要がなくなるため、これを機会にぜひ使用してみてください。
不明な点がございましたら、気軽にお問合せフォームよりご連絡をお願いします。できる限りサポートさせて頂きます。
それではまた会いましょう!

コメント