【GIMP 2.10】文字の縁取りスクリプトを書いた(DL可)

さてさて、このところLaravelやPHPのパッケージといったウェブ系ばかりの話題ばかりになってしまったわけですけど、せっかくのお盆休みなのでいつもと違うことにも挑戦してみることにしました。

・・・ということで、今回のテーマは高機能なフリー画像編集ソフト「GIMP」のスクリプトによる自動化です。

GIMPはオープンソースなので世界中の有志の方々が何年にも渡って様々な機能を追加してきました。そのため、ほぼなんでも最初からやりたいことを実行できるようになっているのがその人気の理由と言っていいでしょう。

GIMPはクセがある

ただ、GIMPは高機能ではあるものの、使い方にクセがあるというのも事実です。

例えば・・・

以下のように、「文字の縁取り(アウトライン)」をする場合です。

↓↓↓

おそらく他の画像エディタだと「縁取り」を選ぶだけできれいな処理ができたりしますが、GIMPの場合はそうはいきません。

実際の作業としては、

  1. レイヤーの不透明部分を選択
  2. 選択エリアを拡大
  3. (必要なら)選択エリアをぼかす
  4. 下に新しいレイヤーを作成
  5. 作成したレイヤーを塗りつぶす
  6. 2つのレイヤーをグループ化(←移動させやすいので)

となり、これを毎回実行するとなるとめんどうで仕方がなかったりします。特にブログを書いている人にとっては切実な悩みではないでしょうか。

Script-Fuの自動化スクリプトを書いた

そこで、「優秀なプログラマーは怠け者」という言葉を信じ、さっき紹介した5つの作業を自動化できるスクリプトを書くことにしました。これから何回も縁取りをつくる必要があるので、ここいらで「高速道路の近道」を作りたかったんですね。

まずは、GIMPで利用できるスクリプトがどんな言語かを調べると、「scheme」と「python」が使えることが判明。

最初「おっ、Pythonいけるじゃん!」ってなりましたが、どういうわけかUbuntu 18.04 ではPythonでのスクリプト(Python-Fu)はコンソールすら実行できない状態で泣く泣く断念。

でも、schemeという今まで全く触ったことがない言語でも自動化スクリプトを作ることができるということで、こちらでなんとかコードを書き、GitHubで公開することができました。

GitHubリポジトリ(ダウンロード可): gimp-simple-outline

※GIMP 2.10で動作確認


インストール方法

まずgimp-simple-outlineにアクセスしてパッケージをダウンロード。中身を展開します。(もちろん、git cloneとかでもOK!)

そして、gimpのコンフィグレーションフォルダを探します。これは環境によって違うので以下のようなパスを探してみてください。

  • C:\Users\your-name\AppData\Roaming\GIMP\2.10(Windows 10)
  • /Users/Al/Library/Application Support/GIMP/2.10(Mac)
  • /home/xxxxx/snap/gimp/40/.config/GIMP/2.10(Ubuntu 18.04)

見つかったら、そのフォルダの中に「scripts」というフォルダがあるので、そこへスクリプト本体の「FU_simple_outline.scm」というファイルをコピーします。(もしgimpを開いていたら再起動させてください)

インストールは以上です。

使い方

1.縁取りをしたいレイヤーを選択したら、メニューバーから

Script-Fu > simple-outline

をクリックします。

2.すると、以下のようなダイアログが表示されます。

3.この中から

  • Color ・・・ 縁取りする色
  • Thickness ・・・ 縁取りする太さ
  • Feather ・・・ 縁取りのぼかし

を選択して「OK」をクリックすれば、自動的に縁取りが行われて、さらにグループ化もします。

画像にも対応

また、このスクリプトで縁取りできるのは文字だけでなく以下のように画像にも対応しています。

おわりに

はじめてschemeという言語のコードを書いてみましたが、こっちもGIMP並みにクセがあってなかなか手間取った、というのが実感です。色々と調査をしているあいだにどこかのページで「一番きれいなコードが書ける」という説明文を見ましたが、PHPやPythonに慣れてしまった私としては「うーん・・・慣れたらそうなのかな??」という印象でした。

ただ、今回のスクリプトで確実にブログ用の画像をつくるのが楽になりました。なので、今後もGIMPのスクリプトもつくっていけたらと考えてます。

ということで今回はGIMPとschemeの話題でした。私のスクリプトが皆さんの役にたてば嬉しいです。

ではでは〜。



にほんブログ村 IT技術ブログへ  にほんブログ村 IT技術ブログ プログラム・プログラマーへ


BugGUI バグ報告を効率化
たった3分でバグ報告完了!? BugGUI