2016/10/06(木) [n年前の日記]
#1 [gimp][scheme] GIMPのScript-fuで文字列のゼロ埋め
GIMP の Script-fu というか TinyScheme で、数値から文字列に変換したものを桁揃え? ゼロ埋め? ゼロパディング? とにかくそういう感じの処理ができるか試したり。
GIMP起動後、フィルタ → Script-fu → Script-fuコンソール、を起動して、以下のように打ち込みながら動作確認。
要するに…。
ということで、できそうだなと。
一行で書くと、こうだろうか。
GIMP起動後、フィルタ → Script-fu → Script-fuコンソール、を起動して、以下のように打ち込みながら動作確認。
> (define cnt 3) cnt > cnt 3 > (number->string cnt) "3" > (string-append "0000" (number->string cnt)) "00003" > (define str (string-append "0000" (number->string cnt))) str > str "00003" > (substring str (- (string-length str) 3) (string-length str)) "003" > (substring str (- (string-length str) 4) (string-length str)) "0003" > (substring str (- (string-length str) 2) (string-length str)) "03"
要するに…。
- (number->string 数値) で、数値から文字列に変換。
- (string-append 文字列1 文字列2 文字列3) で、文字列を連結。
- (string-length 文字列) で、文字列の長さを取得。
- (substring 文字列 開始位置 終了位置) で、部分文字列(文字列の一部分)を取得。
ということで、できそうだなと。
一行で書くと、こうだろうか。
> (let* ((s (string-append "0000" (number->string cnt))) (n (string-length s))) (substring s (- n 2) n)) "03"
[ ツッコむ ]
#2 [gimp] GIMPのブラシ画像ファイルを作成する手順をメモ
GIMP用のブラシファイルを作成する手順をメモ。
◎ ブラシの種類。 :
まず前提として。GIMPのブラシ画像(一枚絵、.gbr)には2種類ある。
他にも、複数の画像を登録したパイプブラシ(.gih)や、ブラシエディターだけで作れる媒介変数つきブラシ(.vbr)、なるものもあるらしいけど。そのあたり自分は作ったことが無かったり。
_7. ブラシの追加
- グレースケール画像。白が透明で、黒が不透明(描画色)。描画色が反映される。アルファチャンネルは持てない。
- RGBA画像。アルファチャンネルを持てるが、描画色は反映されない。色は、画像の色がそのまま使われる。
他にも、複数の画像を登録したパイプブラシ(.gih)や、ブラシエディターだけで作れる媒介変数つきブラシ(.vbr)、なるものもあるらしいけど。そのあたり自分は作ったことが無かったり。
_7. ブラシの追加
◎ ブラシを一つ作成。 :
GIMPで、ブラシにしたい画像を作成するなり開くなりして、ファイル → 名前を付けてエクスポート → 拡張子を「.gbr」にして保存すればブラシファイルになる。
◎ ブラシを追加。 :
GIMPへブラシを追加する方法は、以下のページを見てもらったほうが分かりやすいかも。
_追加ブラシの使用方法
_GIMPにブラシを追加する方法 | GIMP2の使い方
_ゼロからのGIMP: ◆ブラシを追加する
ちなみに、brushes フォルダの中にサブフォルダを作って、その中にブラシファイルを追加すれば、それらのブラシにはサブフォルダ名でタグが付けられる。GIMPのブラシウインドウの上のほうに「タグで検索」てのがあるので、少しは有効に活用できるようになる、はず。
_2. GIMP
_3.6. タグづけ
_追加ブラシの使用方法
_GIMPにブラシを追加する方法 | GIMP2の使い方
_ゼロからのGIMP: ◆ブラシを追加する
ちなみに、brushes フォルダの中にサブフォルダを作って、その中にブラシファイルを追加すれば、それらのブラシにはサブフォルダ名でタグが付けられる。GIMPのブラシウインドウの上のほうに「タグで検索」てのがあるので、少しは有効に活用できるようになる、はず。
_2. GIMP
_3.6. タグづけ
◎ たくさんブラシを作りたい。 :
ブラシを1つ2つ作るだけなら、前述したように、一つ一つを手作業で保存して作ればいいのだけど。場合によっては、十数ファイルぐらいを一気にたくさん作りたい時もあって。
そういう時は、 _GIMPでPhotoshopのブラシを使おう の下のほうで紹介されてる、save-all-layers-as-brushes というスクリプトを使うと楽。コレを使うと、全レイヤーを1つ1つブラシファイルとして自動で保存してくれる。尚、件のページにはスクリプトの追加の仕方も書いてある。
例えば、ブラシにしたいpng画像がたくさんあったら、ひとまずGIMPのレイヤーにどんどん追加していく。
ただ、このスクリプト、ちと問題があって。十数ファイルほど保存すると、番号が、hoge1、hoge10、hoge12、hoge2、…みたいなことになってしまう。ブラシの順番がグチャグチャになるというか。
ということで、hoge01、hoge02、... hoge10、hoge11、となるように、スクリプトを少し修正してみたり。
_ブラシ保存スクリプト(Save All Layers as Brushes)で保存されるブラシ名の連番部分をゼロでパディングするように修正。
元のスクリプトのライセンスはGPLだから、改造版もソースを出しとけば問題ないだろう…。
そういう時は、 _GIMPでPhotoshopのブラシを使おう の下のほうで紹介されてる、save-all-layers-as-brushes というスクリプトを使うと楽。コレを使うと、全レイヤーを1つ1つブラシファイルとして自動で保存してくれる。尚、件のページにはスクリプトの追加の仕方も書いてある。
例えば、ブラシにしたいpng画像がたくさんあったら、ひとまずGIMPのレイヤーにどんどん追加していく。
- エクスプローラその他から、GIMPのレイヤーウインドウ?にドラッグして追加。
- または、GIMP上の、ファイル → レイヤーとして開く、でもOK。ファイル選択時に、Shift や Ctrlキーを押しながらクリックすれば複数のファイルを選んで一度にたくさん追加できる。
ただ、このスクリプト、ちと問題があって。十数ファイルほど保存すると、番号が、hoge1、hoge10、hoge12、hoge2、…みたいなことになってしまう。ブラシの順番がグチャグチャになるというか。
ということで、hoge01、hoge02、... hoge10、hoge11、となるように、スクリプトを少し修正してみたり。
_ブラシ保存スクリプト(Save All Layers as Brushes)で保存されるブラシ名の連番部分をゼロでパディングするように修正。
元のスクリプトのライセンスはGPLだから、改造版もソースを出しとけば問題ないだろう…。
[ ツッコむ ]
#3 [gimp] ドット絵用のGIMPブラシを作成
ドット絵バケーションの基本プリセット画像を参考にしながら、自分もドット絵用のパーツ画像を描いてみたり。
ちなみに、ライセンス的にドット絵バケーションのソレをコピペして使うわけにはいかないはずなので、全部自分でドットを打ち直しました。シルエットは同じでも、中のドットの打ち方やパレットの値は違うはず。
_pixelart_parts_a.png
各パーツは32x32ドット。画像のライセンスは CC0 / Public Domain ってことで。自由に使ってくださいな。
さて、この画像を、GIMPのブラシファイルに変換していきたいわけで。
ちなみに、ライセンス的にドット絵バケーションのソレをコピペして使うわけにはいかないはずなので、全部自分でドットを打ち直しました。シルエットは同じでも、中のドットの打ち方やパレットの値は違うはず。
_pixelart_parts_a.png

さて、この画像を、GIMPのブラシファイルに変換していきたいわけで。
◎ 画像を分割。 :
前述の画像を32x32ドット単位でバラバラに分割する。
今回は、Windows10 x64上で、 _PL_ImageConstructor というツールを使わせてもらって分割してみたり。このツール、透過png(アルファチャンネルを持ったpng)を対象にして色んな処理ができる。素晴らしい。
ちなみに、ImageMagick を使っても分割できるはず。 _Cutting and Bordering -- IM v6 Examples によると、-crop やら +repage やら +adjoin やらを使えばいいらしい。試してないけど。
さておき。これで、24ファイル、32x32ドットの透過pngができた。 → _split_images.zip
今回は、Windows10 x64上で、 _PL_ImageConstructor というツールを使わせてもらって分割してみたり。このツール、透過png(アルファチャンネルを持ったpng)を対象にして色んな処理ができる。素晴らしい。
ちなみに、ImageMagick を使っても分割できるはず。 _Cutting and Bordering -- IM v6 Examples によると、-crop やら +repage やら +adjoin やらを使えばいいらしい。試してないけど。
さておき。これで、24ファイル、32x32ドットの透過pngができた。 → _split_images.zip
◎ GIMPにレイヤーとして読み込む。 :
この大量の透過pngを、GIMPで読み込む。最初のファイルを開いたら、残りのファイルをレイヤーウインドウにドラッグ。これで全画像がレイヤーになってる画像を作れた。念のために一旦保存しておく。ファイル → 名前を付けて保存。.xcfファイルとして保存した。
◎ ブラシファイルとして書き出す。 :
Save All Layers as Brushes.scm を導入しておいて呼び出す。ファイル → レイヤーをブラシとして保存。ブラシファイルができた。
完成品はコチラ。
_gimp_brushes_pixelart_parts_a_20161006.zip (25KB)
CC0 / Public Domain ってことで。自由に使ってください。
ブラシとして追加すると、ブラシウインドウ内では、こんな感じの見た目になる。
完成品はコチラ。
_gimp_brushes_pixelart_parts_a_20161006.zip (25KB)
CC0 / Public Domain ってことで。自由に使ってください。
ブラシとして追加すると、ブラシウインドウ内では、こんな感じの見た目になる。
◎ 使い方。 :
[ ツッコむ ]
以上、1 日分です。