2011/03/19

Gauche-gd: インストールと Hello, world !!

CentOS, Cygwin に入れました。

CentOS では何事もなく入ったので特に書くことがありません。
Cygwin では何やら --host を求められました。
configure: WARNING: If you wanted to set the --build type, don't use --host.
   If a cross compiler is detected then cross compile mode will be used.
以下のようにしてインストールしました。
$ ./configure --host i686-pc-cygwin

取りあえずサンプル。
これをそのまま Gauche-gd で。
(use graphics.gd)

(define test-file-name
  (let1 cnt 0
    (^ (:optional (dir "./")(prefix "")(ext "jpg")(reset #f))
       (rlet1 r (format "~a~a~a.~a" dir prefix cnt ext)
              (when reset
                (set! cnt 0))
              (inc! cnt)))))

(define (test-save im :optional (reset #f))
  (save-as im (test-file-name "/cygdrive/c/temp/test-gd/" "hoge" "png")))

(let1 img (gd-image-create-true-color 200 200)
  (gd-image-fill img 0 0 (gd-true-color 100 0 0))
  (string! img 10 25 "こんにちわ、世界!"
           :font "/cygdrive/c/WINDOWS/Fonts/bdfShnmGothic.ttf"
           ;;           :font "/cygdrive/c/WINDOWS/Fonts/MSMINCHO.TTC"
           :fg (gd-true-color 255 255 0))
  (line! img 10 25 190 25 (gd-true-color 255 255 0))
  (gd-image-filled-ellipse img 100 110 160 140 (gd-true-color 255 200 100))
  (gd-image-filled-rectangle img 60 60 80 100 (gd-true-color 255 255 255))
  (gd-image-filled-rectangle img 120 60 140 100 (gd-true-color 255 255 255))
  (gd-image-filled-arc img 100 120 120 100 0 180 (gd-true-color 200 100 100) 0)
  (test-save img))

CL-GD くらい抽象度の高いラッパーが欲しいです。。現状で必要最低限の簡単なものは自分で作り始めました(with-image とか)が、うーん。。といったところ。やっぱり PostScript でいうところの translate, rotate, rlineto みたいなのが欲しい。
CL-GD を読んだりしてますが、これも Gauche-gd 相当のライブラリの上にラップしてあるようですね。Gauche-gd の上にも同じようなのを作ろうと思えば作れるんですよね、きっと。例えば、CL-GD の with-transformation などが Gauche-gd にもあると嬉しいけど、パッと見結構大変そうかなーと。

Gauche-dbd-pg にも、もう少し抽象度の高い(?)ラッパーなどがあったら良いのになーと思っています。自分で薄いラッパー(with-connection, with-transaction など)は作ったりしています。ですが正直、我ながらいまいちです。

エラい人が作ってくれないかなー・・・と気長に待つのもアレなので、やっぱり自分で作る方向・・・?誰か誘って一緒に作るとか、そういうことになるのかなー。。

プログラミングGauche

0 件のコメント:

コメントを投稿