From 544f0d337220ff1745fbb03dcd59398b91270875 Mon Sep 17 00:00:00 2001 From: Masaya Tojo Date: Sun, 4 Aug 2024 20:33:10 +0900 Subject: Add 'Usage' section to README.md --- README.md | 123 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) diff --git a/README.md b/README.md index 928f8fa..331f9db 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,129 @@ R7RS-PNM is a R7RS library for handling PNM (Portable Any Map) files, providing functionality for reading and writing PNM files,as well as accessing and modifying pixel data. +## Usage + +### Import `(pnm)` library + +```scheme +(import (pnm)) +``` + +### Image + +#### `(image? x) → boolean` + +Returns `#t` if `x` is a valid image object; otherwise, it returns +`#f`. + +#### `(image-type image) → 'pbm | 'pgm | 'ppm` + +Returns the type of the given image. + +- `pbm`: Portable Bit Map +- `pgm`: Portable Gray Map +- `ppm`: Portable Pixel Map + +#### `(image-width image) → integer` + +Returns the width of `image`. + +#### `(image-height image) → integer` + +Returns the height of `image`. + +### PBM (Portable Bit Map) + +#### `(make-pbm-image width height) → ` + +Returns a new Portable Bit Map (PBM) image with the specified width +and height. + +#### `(image-maxval pbm-image) → #t` + +Returns the maximum value for pixel intensity in a PBM image, which is +always `#t` for PBM images, indicating binary values (black and +white). + +#### `(image-ref pbm-image x y) → boolean` + +Returns the value of the pixel at coordinates `(x, y)` in the +specified `image`. The return value is `#t` for a white pixel and `#f` +for a black pixel. + +#### `(image-set! pbm-image x y b)` + +Sets the pixel at coordinates `(x, y)` in the specified `image` to +the boolean value `b`. If `b` is `#t`, the pixel is set to white; if +`#f`, it is set to black. + +### PGM (Portable PGM Map) + +#### `(make-pgm-image width height [maxval]) → ` + +Creates a new Portable Gray Map (PGM) image with the specified width +and height. The optional `maxval` parameter defines the maximum pixel +intensity, defaulting to 255 if not provided. + +#### `(image-maxval pgm-image) → integer` + +Returns the maximum pixel intensity value for the specified PGM image. + +#### `(image-ref image x y) → integer` + +Returns the gray value of the pixel at coordinates `(x, y)` in the +specified PGM image. The value is an integer between 0 and `maxval`. + +#### `(image-set! image x y v)` + +Sets the pixel at coordinates `(x, y)` in the specified PGM image to +the given integer value `v`, which must be between 0 and `maxval`. + +### PPM (Portable PPM Map) + +#### `(make-ppm-image width height [maxval]) → ` + +Creates a new Portable Pixel Map (PPM) image with the specified width +and height. The optional `maxval` parameter defines the maximum color +intensity, defaulting to 255 if not provided. + +#### `(image-maxval pgm-image) → integer` + +Returns the maximum color intensity value for the specified PPM image. + +#### `(image-ref ppm-image x y) → (values integer integer integer)` + +Returns the RGB values of the pixel at coordinates `(x, y)` in the +specified PPM image as three integers, representing the red, green, +and blue components, respectively. + +### `(image-set! ppm-image x y r g b)` + +Sets the pixel at coordinates `(x, y)` in the specified PPM image to +the given RGB values `r`, `g`, and `b`, which must be integers between +0 and `maxval`. + + +### Reading + +#### `(image-read port) → ` + +Reads a PNM image from the specified input `port` and returns the +corresponding image object (PBM, PGM, or PPM). + +### `(pnm-parse-error? exn) → boolean` + +Returns `#t` if the exception `exn` is a parse error that occurred +during the execution of the `image-read` procedure; otherwise, it +returns `#f`. + +### Writing + +### `(image-write image port)` + +Writes the specified `image` (PBM, PGM, or PPM) to the given output +`port`. + ## license This library is released under the LGPLv3+ License. -- cgit v1.2.3