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