2016年6月28日火曜日

VB GIMP フォント一覧を変数へ

前々回、 PC GIMP フォント一覧を画像表示 で、 GIMP が持っているフォントを画像ファイルとして表示させる方法を書きました。
でも、 画像では、 ひと手間掛けないと、プログラムの変数に取り込む事は出来ません。
勿論、方法はあります。  この場合、 レイヤー名は使われているフォント名になっていますので、
Script-Fu で、 レイヤー名を取得して、 クリップボードやテキストファイルに吐き出せば良いのですが ... 。
面倒です。


前々回 の最後にも書いたのですが、 フォント一覧を画像表示 は GIMP Script-Fu の Console からも実行出来ます。
ならば、
いきなり、フォント名だけを取得出来ないか?。

あります。 あります。
でも、 Tiny-Scheme の お世話 になります。.  Visual Basic でなくて ごめんなさい。 🙇.  おっと、こんな絵文字が ... 。.

   (gimp-fonts-get-list "")

これで、 だぁ~ と リストが列挙されます。

戻り値は

   (nnn #("font_1" "font_2" "font_3" ... "font_last-before" "font_last"))


ですから、
(cadr (gimp-fonts-get-list "")) と書いて、 ("font_1" "font_2" "font_3" ... "font_previous_last" "font_last") を得ます。

これを GIMP Script-Fu の Console で実行させ、 表示される 戻り値 を Clipboard にコピーします。



以上が、GIMP 上の Script-Fu での お話し。  Tiny-Scheme ですね。  🙇.
ここから後は、Visual Basic の お話し です。.  あ~、こんがらがる!。.



後は、 Visual Studio (VB) で、加工すれば OK ですね。
Clipboard 経由で、 文字列の操作になります。

少し面倒なのは、
("val_1" "val_2" "val_3") を "val_1" と "val_2" と "val_3" に分解する事。
そんなの簡単 と仰らないで!。
val_n の中には "Font Name, Bold" なんて名前があって、一筋縄では行きません。  少なくとも、CSV には不向き。.
文字列を示す " の扱いも注意ですね。
プログラムが上手く動いているか否かは、 例えば、配列なら 要素数を GIMP 上での nnn と照らし合わせる事です。

  やっつけコード( Spaghetti Code )は書いてありますが、 スマートではないので、省略します。.  :) 。
  Hint だけ書いて置きますか。
  (" と ") を外し、 " " で Split して 、 配列なり List なりに取り込みます。
  variable.split は文字 (文字列でない) が対象なので留意です。  split(variable, .... で行きます。
      System.String.Split ではなく Split ( Microsoft.VisualBasic.Strings.Split )を使います。.
  この時 " の扱いに注意ですね。  VB では " は "" と書くのですよね。  うっ、上手に説明できていないかな ... 。


残る作業は、名称が異なるフォントが表示する書体を見較べて、双方の対照表を作る事。
あ~、面倒。  やらなきゃ良かった ... 。  :)。.



[2016/06/29] 語句をリンクに変更 前回を前々回に変更

0 件のコメント:

コメントを投稿