Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Schemeでgimpを動かしてみる

1,027 views

Published on

dendai; sie talk live 2

Published in: Technology
  • If you want to download or read this book, Copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Doc Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • ACCESS that WEBSITE Over for All Ebooks (Unlimited) ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... DOWNLOAD FULL EPUB Ebook here { http://bit.ly/2m77EgH } ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m77EgH } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m77EgH }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

Schemeでgimpを動かしてみる

  1. 1. SchemeでGIMPを動かしてみた あると@twinkfrag
  2. 2. 軽く自己紹介を • FI科 – 情報メディア学科2 年 • ソフトウェア研究部 • 趣味は 艦船を擬人化した女の子を クリックして集めるゲーム とか、 ヒロインの女の子をクリッ クしてメッセージウインド ウを読みながら攻略する
  3. 3. What’s GIMP? • GNU Image Manipulation Program • 言わずと知れた画像編集ソフト • 多くのLinuxディストリに同梱されている
  4. 4. What’s Sheme? • LISPの方言のひとつ • こわい • 言語仕様が小さいのが特徴らしい
  5. 5. GIMPとSchemeに何の関係が? • GIMPは”Script-Fu”でマクロ操作ができる • そのScript-FuはSchemeで動く • 最近のGIMPにはPerlやらPythonやらで動く 環境も用意されてるらしいがせっかくな ので手を出してみた • 結果、大やけど
  6. 6. ざっくりとScheme入門1 • 関数は必ず()で括る • (関数名 arg1 arg2 … argN) といった具合 • (+ 1 2) で 3 が返る感じ
  7. 7. ざっくりとScheme入門2 • LISPなのでリスト処理をしよう • ‘(1 2 3) あるいは (list 1 2 3) の形式で作れる • 中身は連結リスト 頭のオブジェクトをcar 後ろのリスト(を示すポインタ)をcdrと呼ぶ 1 car cdr 2 3 ‘() • (cons 1 ‘(2 3)) でcarとcdrを指定して生成
  8. 8. ざっくりとScheme入門3 • (define シグネチャ 処理)で関数定義 • シグネチャ部分は関数呼び出しと同じ (関数名 arg1 arg2 … argN) • 処理部分は任意の数の関数が書ける • 最後に標準出力に出されたものがそのま ま返り値となる
  9. 9. ざっくりとScheme入門4 • (let* ((a 1) (b 2)) 処理) で変数を利用した処理ができる • 変数の束縛範囲はletが閉じるまで • グローバル変数とかめんどくさいし使わ ない • どうしても使いたければdefineで定数返す
  10. 10. ざっくりとScheme入門5 • LISTの各項に対する処理は (map 処理 list) • 処理部分は引数1つの関数またはラムダ式 • ラムダ式 • 無名関数の記法のひとつ
  11. 11. GIMP上で必要なデータ型 • Image : 画像そのもの • Display : 画像を開いている内部ウインドウ • Drawable : レイヤーまたはチャンネル 操作が反映される対象
  12. 12. Script-Fuでよく使われる関数 • gimp-file-load : ファイルを読み込んでimage を返す • gimp-image-new : 新しいイメージを作成 • gimp-image-active-drawable : レイヤーを取 得 • gimp-layer-new : 新しいレイヤーを作成 • gimp-layer-set-offsets : レイヤーの位置を変 更
  13. 13. 注意点 • gimp関数は単一項でも必ずリストを返す • gimp-image-insert-layer : 作成したレイヤー をイメージに挿入 レイヤーは作成しただけでは表示されな い 親になるイメージを関数で指定してるの に… • gimp-image-merge-visible-layers : pngなど単一レイヤーファイルに出力する 際には、レイヤーの結合が明示的に必要
  14. 14. その他の関数 • ヘルプ/プロシージャーブラウザーを眺め る
  15. 15. 実際にやってみた • https://github.com/twinkfrag/scriptfu/blob/master/script-fu-sample-shift.scm
  16. 16. 実際にやってみた • フィルター/Script-Fu/スクリプトを再読み 込み
  17. 17. 実際にやってみた • Script-Fu コンソールで実行
  18. 18. 実際にやってみた ちゃんと先ほどのスクリプトの 1. 1280x720の画像を作成して 2. 読み込んだ画像を(20 20)に移動して 3. -move.pngをつけて保存 ができている!!
  19. 19. まとめ • レイヤーが表示されない! →insertしてませんでした • レイヤーへの変更が保存されない! →mergeしてませんでした • consがごちゃごちゃになって理解不能! →落ち着け • 適当に動作サンプルとして選んだ くまりんこ可愛い!

×