typos in image
svn: r3750
This commit is contained in:
parent
86d08f4197
commit
0ead709016
|
@ -1,64 +1,69 @@
|
|||
{ (define LIBNAME "Images")
|
||||
(include "head.tinc") }
|
||||
|
||||
This teachpack provides primitives for constructing and manipulating
|
||||
<p>This teachpack provides primitives for constructing and manipulating
|
||||
images. Basic images are created as outlines or solid shapes. Additional
|
||||
primitives allow for the composition of images.
|
||||
primitives allow for the composition of images. </p>
|
||||
|
||||
Data definition:
|
||||
<br>Data definition:
|
||||
<pre>
|
||||
<code>
|
||||
;; <em>Mode</em> is one of the following two symbols or strings:
|
||||
;; <em>{(idx Mode)}</em> is one of the following two symbols or strings:
|
||||
;; -- 'solid
|
||||
;; -- 'outline
|
||||
;; -- "solid"
|
||||
;; -- "outline"
|
||||
</code>
|
||||
</pre>
|
||||
Interpretation: <code>'solid</code> is used for creating solid basic
|
||||
shapes; <code>'outline</code> is used for creating outlines of basic
|
||||
shapes. Strings are used in an analogous manner.
|
||||
|
||||
;; Interpretation: <code>'solid</code> is used for creating solid basic
|
||||
;; shapes; <code>'outline</code> is used for creating outlines of basic
|
||||
;; shapes. Strings are used in an analogous manner.
|
||||
</code></pre>
|
||||
|
||||
Data definition:
|
||||
<pre>
|
||||
<code>
|
||||
;; <em>Color</em> is one of:
|
||||
(define-struct color (red blue green))
|
||||
;; A CS is a structure: (make-color N N N)
|
||||
;; where N is between 0 and 255.
|
||||
|
||||
;; <em>{(idx Color)}</em> is one of:
|
||||
;; -- a color symbol, e.g., 'blue
|
||||
;; -- a color string, e.g., "blue"
|
||||
;; -- a color struct, e.g., (make-color 0 0 255), which also denotes blue.
|
||||
;; -- a CS, e.g., (make-color 0 0 255), which also denotes blue.
|
||||
|
||||
;; Interpretation: <code>Color</code> arguments are used to paint the shapes
|
||||
;; or their outlines. See below for more information about color structs.
|
||||
</code>
|
||||
</pre>
|
||||
Interpretation: <code>Color</code> arguments are used to paint the shapes
|
||||
or their outlines. See below for more information about color structs.
|
||||
|
||||
The following predicate precisely specifies what a valid image color is:
|
||||
<menu>
|
||||
<li><code>{(idx image-color?)}</code> : anything -> boolean <br>
|
||||
<li><code>{(idx image-color?)} : anything -> boolean </code><br>
|
||||
to determine if the input is a valid image color
|
||||
</menu>
|
||||
|
||||
The following functions create basic shapes (<code>Image</code>):
|
||||
The first group of functions creates basic shapes (<code>Image</code>):
|
||||
<menu>
|
||||
<li><code>{(idx rectangle)}</code> : Int Int Mode Color -> Image <br>
|
||||
<li><code>{(idx rectangle)} : Int Int Mode Color -> Image </code><br>
|
||||
to create a rectangle using the given width, height, mode, and color
|
||||
|
||||
<li><code>{(idx circle)}</code> : Int Mode Color -> Image<br>
|
||||
<li><code>{(idx circle)} : Int Mode Color -> Image</code><br>
|
||||
to create a circle using the given radius, mode, and color
|
||||
|
||||
<li><code>{(idx ellipse)}</code> : Int Int Mode Color -> Image <br>
|
||||
<li><code>{(idx ellipse)} : Int Int Mode Color -> Image </code><br>
|
||||
to create an ellipse using the given width, height, and color
|
||||
|
||||
<li><code>{(idx triangle)}</code> : Int Mode Color -> Image<br>
|
||||
<li><code>{(idx triangle)} : Int Mode Color -> Image</code><br>
|
||||
to create an upward pointing equilateral triangle using the given edge size and color
|
||||
|
||||
<li><code>{(idx line)}</code> : Int Int Color -> Image <br> to create an
|
||||
<li><code>{(idx line)} : Int Int Color -> Image </code><br> to create an
|
||||
image with a colored line from (0,0) to the point with the given
|
||||
coordinates
|
||||
|
||||
<li><code>{(idx add-line)}</code> : Image Int Int Int Int Color -> Image <br>
|
||||
<li><code>{(idx add-line)} : Image Int Int Int Int Color -> Image </code><br>
|
||||
to add a line to an existing image, drawn between the two given points
|
||||
|
||||
<li><code>{(idx text)}</code> : String Size Color -> Image <br>
|
||||
<li><code>{(idx text)} : String Size Color -> Image </code><br>
|
||||
to create an image of the text in the given string, with the point size,
|
||||
and color specified by the last two arguments
|
||||
</menu>
|
||||
|
@ -71,30 +76,30 @@ created from <code>line</code> and <code>text</code>, which have pinholes
|
|||
at the top left. When in doubt you can always find out where the pinhole is
|
||||
and even place it somewhere else:
|
||||
<menu>
|
||||
<li><code>{(idx pinhole-x)}</code> : Image -> Int <br>
|
||||
<li><code>{(idx pinhole-x)}</code> : Image -> Int </code><br>
|
||||
to determine the x coordinate of the pinhole, measuring from
|
||||
the left of the image
|
||||
|
||||
<li><code>{(idx pinhole-y)}</code> : Image -> Int <br>
|
||||
<li><code>{(idx pinhole-y)} : Image -> Int </code><br>
|
||||
to determine the y coordinate of the pinhole, measuring down from
|
||||
the left of the image
|
||||
the top of the image
|
||||
|
||||
<li><code>{(idx put-pinhole)}</code> : Image Int Int -> Image <br>
|
||||
<li><code>{(idx put-pinhole)} : Image Int Int -> Image </code><br>
|
||||
to put the pinhole in the location specified by the arguments, counting
|
||||
from the left and down from the top, respectively.
|
||||
|
||||
<li><code>{(idx move-pinhole)}</code> : Image Int Int -> Image <br>
|
||||
<li><code>{(idx move-pinhole)} : Image Int Int -> Image </code><br>
|
||||
to move the pinhole down and to the right (by the specified amounts) of
|
||||
its current location. Use negative numbers to move it up or to the left.
|
||||
</menu>
|
||||
|
||||
The next group of functions build images from images:
|
||||
<menu>
|
||||
<li><code>{(idx overlay)}</code> : Image Image Image ... -> Image <br>
|
||||
<li><code>{(idx overlay)} : Image Image Image ... -> Image </code><br>
|
||||
to add the pixels of the second Image onto the first image. The operation
|
||||
lines up the images via their pinholes.
|
||||
|
||||
<li><code>{(idx overlay/xy)}</code> : Image Int Int Image -> Image <br> to
|
||||
<li><code>{(idx overlay/xy)} : Image Int Int Image -> Image </code><br> to
|
||||
add the pixels of the second image onto the first image. Instead of lining
|
||||
up on the pinhole, the second image's pinhole is lined up with an offset
|
||||
from the first image's pinhole. The two coordinates specify how far down
|
||||
|
@ -105,7 +110,7 @@ The next group of functions build images from images:
|
|||
For composite images, it is always possible to determine whether one occurs
|
||||
in the other and where:
|
||||
<menu>
|
||||
<li><code>{(idx image-inside?)}</code> : Image Image -> Boolean <br>
|
||||
<li><code>{(idx image-inside?)} : Image Image -> Boolean </code><br>
|
||||
to determine whether the pixels of the second image appear in the first.
|
||||
|
||||
<p>Be careful when using this function with jpeg images. If you use an
|
||||
|
@ -115,7 +120,7 @@ standard compression applied to JPEG images. </p>
|
|||
|
||||
<p>Use PNG images instead whenever possible. </p>
|
||||
|
||||
<li><code>{(idx find-image)}</code> : Image Image -> Posn <br>
|
||||
<li><code>{(idx find-image)}</code> : Image Image -> Posn </code><br>
|
||||
to determine where the pixels of the second image appear in the first, with
|
||||
respect to the pinhole of the first image.
|
||||
</menu>
|
||||
|
@ -123,94 +128,92 @@ standard compression applied to JPEG images. </p>
|
|||
Two more properties of images are useful for image manipulations: their
|
||||
width and height. The two functions for extracting these properties are:
|
||||
<menu>
|
||||
<li><code>{(idx image-width)}</code> : Image -> Int <br>
|
||||
<li><code>{(idx image-width)} : Image -> Int </code><br>
|
||||
to obtain an Image's width in pixels
|
||||
<li><code>{(idx image-height)}</code> : Image -> Int <br>
|
||||
<li><code>{(idx image-height)} : Image -> Int </code><br>
|
||||
to obtain an image's height in pixels
|
||||
</menu>
|
||||
|
||||
Data definition:
|
||||
<pre>
|
||||
<code>
|
||||
;; <em>List-of-color</em> is one of:
|
||||
;; -- empty
|
||||
;; -- (cons Color List-of-color)
|
||||
</code>
|
||||
</pre>
|
||||
Interpretation: represents a sequence of colors
|
||||
|
||||
It is possible to extract an image's colors and pixels and to create images
|
||||
from a list of colors:
|
||||
<menu>
|
||||
<li><code>{(idx image->color-list)} : Image -> List-of-color </code><br>
|
||||
to convert an image to a list of colors
|
||||
|
||||
<li><code>{(idx color-list->image)} : List-of-color Nat Nat Nat Nat -> Image </code><br>
|
||||
to convert a list of colors to an image with the given
|
||||
width and height, and pinhole coordinates (the pinhole
|
||||
coordinates are with respect to the top-left of the image).
|
||||
|
||||
</menu>
|
||||
|
||||
The shrink functions trim an image by eliminating extraneous pixels.
|
||||
<menu>
|
||||
<li><code>{(idx shrink-tl)}</code> : Image Int Int -> Image <br>
|
||||
<li><code>{(idx shrink-tl)} : Image Int Int -> Image </code><br>
|
||||
to shrink the image, starting from the top-left corner. The
|
||||
two numbers indicate how many pixels to save.
|
||||
The pinhole of the resulting image is in the middle of the image.
|
||||
</li>
|
||||
|
||||
<li><code>{(idx shrink-tr)}</code> : Image Int Int -> Image <br>
|
||||
<li><code>{(idx shrink-tr)} : Image Int Int -> Image </code><br>
|
||||
to shrink the image, starting from the top-right corner. The
|
||||
two numbers indicate how many pixels to save.
|
||||
The pinhole of the resulting image is in the middle of the image.
|
||||
</li>
|
||||
|
||||
<li><code>{(idx shrink-bl)}</code> : Image Int Int -> Image <br>
|
||||
<li><code>{(idx shrink-bl)} : Image Int Int -> Image </code><br>
|
||||
to shrink the image, starting from the bottom-left corner. The
|
||||
two numbers indicate how many pixels to save.
|
||||
The pinhole of the resulting image is in the middle of the image.
|
||||
</li>
|
||||
<li><code>{(idx shrink-br)}</code> : Image Int Int -> Image <br>
|
||||
|
||||
<li><code>{(idx shrink-br)} : Image Int Int -> Image </code><br>
|
||||
to shrink the image, starting from the bottom-right corner. The
|
||||
two numbers indicate how many pixels to save.
|
||||
The pinhole of the resulting image is in the middle of the image.
|
||||
</li>
|
||||
|
||||
<li><code>{(idx shrink)}</code> : Image Int Int Int Int -> Image <br>
|
||||
<li><code>{(idx shrink)} : Image Int Int Int Int -> Image </code><br>
|
||||
to shrink an image around its pinhole. The numbers are the
|
||||
pixels to save to left, above, to the right, and below the
|
||||
pinhole, respectively. The pixel directly on the pinhole is
|
||||
always saved.
|
||||
</li>
|
||||
</menu>
|
||||
|
||||
|
||||
The next functions separate an image into its consitiuent colors and
|
||||
combine pixels together to build an image.
|
||||
<menu>
|
||||
<li><code>{(idx image->color-list)}</code> : image -> list-of-color <br>
|
||||
to convert an image to a list of colors
|
||||
|
||||
<li><code>{(idx color-list->image)}</code> : list-of-color int int int int -> image <br>
|
||||
to convert a list of colors to an image with the given
|
||||
width and height, and pinhole coordinates (the pinhole
|
||||
coordinates are with respect to the top-left of the image).
|
||||
|
||||
<li><code>{(idx make-color)}</code> : int int int -> color <br>
|
||||
to construct a color
|
||||
<li><code>{(idx color?)}</code> : anything -> boolean <br>
|
||||
to determine if its input is a color
|
||||
<li><code>{(idx color-red)}</code> : color -> int <br>
|
||||
to extract the red component of a color
|
||||
<li><code>{(idx color-green)}</code> : color -> int <br>
|
||||
to extract the green component of a color
|
||||
<li><code>{(idx color-blue)}</code> : color -> int <br>
|
||||
to extract the blue component of a color
|
||||
</menu>
|
||||
|
||||
Like the last group of functions, these functions separate
|
||||
an image into its consitiuent colors and combine pixels
|
||||
together to build an image, but these provide alpha-channel
|
||||
information as well. Alpha channels are a measure of
|
||||
transparency; 0 indicates fully opaque and 255 indicates
|
||||
fully transparent.
|
||||
The last group of functions extracts the consitiuent colors from an image
|
||||
and combine colors into an image, but the functions provide alpha-channel
|
||||
information as well. Alpha channels are a measure of transparency; 0
|
||||
indicates fully opaque and 255 indicates fully transparent.
|
||||
|
||||
<menu>
|
||||
<li><code>{(idx image->alpha-color-list)}</code> : image -> list-of-alpha-color <br>
|
||||
<li><code>{(idx image->alpha-color-list)} : image -> list-of-alpha-color </code><br>
|
||||
to convert an image to a list of alpha colors
|
||||
<li><code>{(idx alpha-color-list->image)}</code> : list-of-alpha-color int int int int -> image <br>
|
||||
<li><code>{(idx alpha-color-list->image)} : list-of-alpha-color int int int int -> image </code><br>
|
||||
to convert a list of alpha colors to an image with the given
|
||||
width and height, and pinhole coordinates (the pinhole
|
||||
coordinates are with respect to the top-left of the image).
|
||||
<li><code>{(idx make-alpha-color)}</code> : int int int int -> color <br>
|
||||
<li><code>{(idx make-alpha-color)} : int int int int -> color </code><br>
|
||||
to construct an alpha color
|
||||
<li><code>{(idx alpha-color?)}</code> : anything -> boolean <br>
|
||||
<li><code>{(idx alpha-color?)} : anything -> boolean </code><br>
|
||||
to determine if its input is a color
|
||||
<li><code>{(idx alpha-color-alpha)}</code> : color -> int <br>
|
||||
<li><code>{(idx alpha-color-alpha)} : color -> int </code><br>
|
||||
to extract the alpha value of a color
|
||||
<li><code>{(idx alpha-color-red)}</code> : color -> int <br>
|
||||
<li><code>{(idx alpha-color-red)} : color -> int </code><br>
|
||||
to extract the red component of a color
|
||||
<li><code>{(idx alpha-color-green)}</code> : color -> int <br>
|
||||
<li><code>{(idx alpha-color-green)} : color -> int </code><br>
|
||||
to extract the green component of a color
|
||||
<li><code>{(idx alpha-color-blue)}</code> : color -> int <br>
|
||||
<li><code>{(idx alpha-color-blue)} : color -> int </code><br>
|
||||
to extract the blue component of a color"
|
||||
</menu>
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user