;;; Leptonica library wrapped for Chicken Scheme.
;;; Copyright (c) Peter Lane, 2010.
;;; This program is free software: you can redistribute it and/or modify
;;; it under the terms of the GNU General Public License as published by
;;; the Free Software Foundation, either version 3 of the License, or
;;; (at your option) any later version.
;;; This program is distributed in the hope that it will be useful,
;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;;; GNU General Public License for more details.
;;; You should have received a copy of the GNU General Public License
;;; along with this program. If not, see .
;;; -------------------------------------------------------------------------------
(module
leptonica
(export
L-BRING-IN-WHITE L-BRING-IN-BLACK
L-ROTATE-AREA-MAP L-ROTATE-SHEAR L-ROTATE-SAMPLING
IFF-UNKNOWN IFF-BMP IFF-JFIF-JPEG IFF-PNG IFF-TIFF IFF-TIFF-PACKBITS
IFF-TIFF-RLE IFF-TIFF-G3 IFF-TIFF-G4 IFF-TIFF-LZW IFF-TIFF-ZIP
IFF-PNM IFF-PS IFF-GIF IFF-JP2 IFF-DEFAULT IFF-SPIX
pix-create pix-copy pix-destroy
pix-get-width pix-set-width pix-get-height pix-set-height
pix-get-depth pix-set-depth pix-set-dimensions
pix-get-x-res pix-set-x-res pix-get-y-res pix-set-y-res
pix-set-resolution pix-scale-resolution pix-get-input-format pix-set-input-format
pix-read
pix-rotate
pix-scale
pix-write
)
(import chicken extras foreign scheme)
#>
#include
<#
;; define constants
(define L-BRING-IN-WHITE 1)
(define L-BRING-IN-BLACK 2)
(define L-ROTATE-AREA-MAP 1)
(define L-ROTATE-SHEAR 2)
(define L-ROTATE-SAMPLING 3)
;; -- from imageio.h
;; define constants
(define IFF-UNKNOWN 0)
(define IFF-BMP 1)
(define IFF-JFIF-JPEG 2)
(define IFF-PNG 3)
(define IFF-TIFF 4)
(define IFF-TIFF-PACKBITS 5)
(define IFF-TIFF-RLE 6)
(define IFF-TIFF-G3 7)
(define IFF-TIFF-G4 8)
(define IFF-TIFF-LZW 9)
(define IFF-TIFF-ZIP 10)
(define IFF-PNM 11)
(define IFF-PS 12)
(define IFF-GIF 13)
(define IFF-JP2 14)
(define IFF-DEFAULT 15)
(define IFF-SPIX 16)
;; -- from pix1.c
(define pix-create
(foreign-lambda c-pointer "pixCreate" integer integer integer))
(define pix-clone
(foreign-lambda c-pointer "pixClone" c-pointer))
(define pix-copy
(foreign-lambda c-pointer "pixCopy" c-pointer c-pointer))
(define pix-destroy
(foreign-lambda void "pixDestroy" c-pointer))
(define pix-get-width
(foreign-lambda integer "pixGetWidth" c-pointer))
(define pix-set-width
(foreign-lambda integer "pixSetWidth" c-pointer integer))
(define pix-get-height
(foreign-lambda integer "pixGetHeight" c-pointer))
(define pix-set-height
(foreign-lambda integer "pixSetHeight" c-pointer integer))
(define pix-get-depth
(foreign-lambda integer "pixGetDepth" c-pointer))
(define pix-set-depth
(foreign-lambda integer "pixSetDepth" c-pointer integer))
(define pix-set-dimensions
(foreign-lambda integer "pixSetDimensions" c-pointer integer integer integer))
(define pix-get-x-res
(foreign-lambda integer "pixGetXRes" c-pointer))
(define pix-set-x-res
(foreign-lambda integer "pixSetXRes" c-pointer integer))
(define pix-get-y-res
(foreign-lambda integer "pixGetYRes" c-pointer))
(define pix-set-y-res
(foreign-lambda integer "pixSetYRes" c-pointer integer))
(define pix-set-resolution
(foreign-lambda integer "pixSetResolution" c-pointer integer integer))
(define pix-scale-resolution
(foreign-lambda integer "pixScaleResolution" c-pointer float float))
(define pix-get-input-format
(foreign-lambda integer "pixGetInputFormat" c-pointer))
(define pix-set-input-format
(foreign-lambda integer "pixSetInputFormat" c-pointer integer))
;; -- from readfile.c
;; Reads an image reference from given filename
(define pix-read
(foreign-lambda c-pointer "pixRead" c-string))
;; -- from rotate.c
;; input:
;; * c-pointer: to image
;; * float: angle (radians, clockwise is positive)
;; * integer: type (L-ROTATE-*)
;; * integer: incolour (L-BRING-IN-*)
;; * width: original width, use 0 to avoid embedding
;; * height: original height, use 0 to avoid embedding
;; output:
;; * c-pointer to new image, or #f on error
(define pix-rotate
(foreign-lambda c-pointer "pixRotate" c-pointer float integer integer integer integer))
;; -- from scale.c
;; input:
;; * c-pointer: to image
;; * float: scale_x
;; * float: scale_y
;; output:
;; * c-pointer to new image, or #f on error
(define pix-scale
(foreign-lambda c-pointer "pixScale" c-pointer float float))
;; -- from writefile.c
;; Writes image reference by c-pointer to filename c-string, using type of integer
(define pix-write
(foreign-lambda void "pixWrite" c-string c-pointer integer))
) ; end of module