アストラルプリズム

PC、スマホ、ゲームなどの備忘録と日記

GIMPで文字の縁取りをするプラグイン

手順が地味に面倒なので作った。
以前キーマクロソフトで作ったが動作が安定しないのでちゃんとGIMPプラグインで作り直した。
選択したテキストレイヤーの下に縁取りのレイヤーができる。
テキストじゃなくても透明部分があるものはすべて縁取り出来る。
この方法だと角の丸い縁取りができる。
角の角い縁取りを作る方法はこっち。

重要メモ
#アクティブレイヤーの位置取得
act_position = pdb.gimp_image_get_item_position(image,act_layer)

* インストール方法
以下をコピペしてファイル名をadd_outline_text.pyにしてutf-8で保存後、GIMPプラグインフォルダーに入れる。
GIMPのメニューの「レイヤー」→「add outline text 」をクリックすると動作する。
プラグインフォルダーはGIMPを起動し「編集」→「設定」→「フォルダー」→「プラグイン」で確認の事。

#!/usr/bin/python
# -*- coding: utf-8 -*-
import random
from gimpfu import *

def add_outline_text(size):
	#一番下のレイヤーの情報取得
	image = gimp.image_list()[0]
	#アクティブレイヤーを取得
	act_layer = image.active_layer
	#選択範囲を解除
	pdb.gimp_selection_none(image)
	#レイヤーを新規作成
	name = "縁取り"
	width   = image.width
	height  = image.height
	type    = RGB_IMAGE
	opacity = 100
	mode    = NORMAL_MODE
	new_layer = gimp.Layer(image, name, width, height, type, opacity, mode)
	#アクティブレイヤーの位置取得	
	act_position = pdb.gimp_image_get_item_position(image,act_layer)
	new_position = act_position + 1
	#レイヤー位置指定
	image.add_layer(new_layer, new_position)
	# アルファチャンネルの追加
	pdb.gimp_layer_add_alpha(new_layer)
	pdb.gimp_edit_clear(new_layer)

	# 不透明な範囲を選択
	pdb.gimp_image_select_item(image, 0, act_layer)
	#選択範囲を拡大
	pdb.gimp_selection_grow(image ,size)
	#描画色で塗りつぶし
	pdb.gimp_edit_fill(new_layer, FOREGROUND_FILL)
	#選択範囲を解除
	pdb.gimp_selection_none(image)

	
register(
	"add_outline_text",
	"add outline text",
	"add outline text",
	"katsumi",
	"katsumi",
 	"2022",
	"add outline text",
	"",
	[
		(PF_INT, "size", "縁取りのサイズ", 2),
	],
	[],
	add_outline_text,
	menu = "<Image>/Layer" )

main()


参考サイト
アクティブレイヤーの取得
mendo.work

不透明な範囲を選択、塗りつぶし
qiita.com