guile-user
[Top][All Lists]
Advanced

[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 ----------------------------------------------------------------------



reply via email to

[Prev in Thread] Current Thread [Next in Thread]