[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[ANN] Guile binding for libsimage (update)
From: |
Lars J. Aas |
Subject: |
[ANN] Guile binding for libsimage (update) |
Date: |
Tue, 8 May 2001 14:48:53 +0200 |
User-agent: |
Mutt/1.2.5i |
I've now added some simple pixel-based image manipalation hooks, so you
can do procedural painting from Guile, like for instance:
| (use-modules (coin simage))
|
| (let ((image (make-simage-image 256 256)))
| (let outer ((y 0))
| (let inner ((x 0))
| (simage-image-set-pixel! image x y (make-simage-pixel x y 0))
| (if (< x 255) (inner (+ x 1))))
| (if (< y 255) (outer (+ y 1))))
| (simage-save image "output.png" "png"))
The new simage module file is included below.
Have fun,
Lars J
; simage.scm -- a guile module for interfacing with libsimage -*- scheme -*-
;
; Written by Lars J. Aas <address@hidden>.
; This file is Public Domain.
;
; $Revision: 1.2 $
;
; TODO:
; - add some high-level scheme-level drawing primitives
(define-module (coin simage))
(let ((libhandle (dynamic-link "libguilesimage.so")))
(dynamic-call "guilesimage_init" libhandle))
(export
simage-version-major ; => integer
simage-version-minor ; => integer
simage-version-micro ; => integer
simage-get-last-error ; => string
; #<simage-image>
make-simage-image ; width height [components = 4] => simage-image
simage-image-width ; simage-image => integer
simage-image-height ; simage-image => integer
simage-image-components ; simage-image => integer
simage-load-supported? ; filename => boolean
simage-load ; filename => simage-image
simage-save-supported? ; extension => boolean
simage-save ; simage-image filename extension => boolean
simage-resize ; simage-image width height => simage-image
; #<simage-pixel>
make-simage-pixel ; red green blue [alpha = 255] => simage-pixel
simage-pixel-get-red ; simage-pixel => integer
simage-pixel-get-green ; simage-pixel => integer
simage-pixel-get-blue ; simage-pixel => integer
simage-pixel-get-alpha ; simage-pixel => integer
; #<simage-image> #<simage-pixel>
simage-image-get-pixel ; simage-image x y => simage-pixel
simage-image-set-pixel! ; simage-image x y simage-pixel =>
)
; EOF ----------------------------------------------------------------------