DIRECTORY ImagerTransform USING [Transformation], ImagerPixelMaps USING [DeviceRectangle, PixelMap], Rope USING [ROPE]; ImagerPixelArrays: CEDAR DEFINITIONS ~ BEGIN ROPE: TYPE ~ Rope.ROPE; PixelMap: TYPE ~ ImagerPixelMaps.PixelMap; DeviceRectangle: TYPE ~ ImagerPixelMaps.DeviceRectangle; Transformation: TYPE ~ ImagerTransform.Transformation; MaxSampleValues: TYPE ~ REF MaxSampleValuesRep; MaxSampleValuesRep: TYPE ~ RECORD [ SEQUENCE samplesPerPixel: NAT OF INT ]; PixelArray: TYPE ~ REF PixelArrayRep; PixelArrayRep: TYPE ~ RECORD [ sPixels, fPixels: INT, maxSampleValue: MaxSampleValues, m: Transformation, aisName: ROPE, get: PROC [ self: PixelArray, select: NAT, rectangle: DeviceRectangle ] RETURNS [pixelMap: PixelMap], release: PROC [self: PixelArray, select: NAT, pixelMap: PixelMap], data: REF ]; PixelArrayFromAIS: PROC[aisName: ROPE] RETURNS[pixelArray: PixelArray]; PixelArrayFromPixelMaps: PROC[pixelMaps: LIST OF PixelMap, m: Transformation _ NIL] RETURNS [pixelArray: PixelArray]; ExtractPixelArray: PROC[pixelArray: PixelArray, select: LIST OF NAT] RETURNS[PixelArray]; JoinPixelArrays: PROC[pixelArrays: LIST OF PixelArray] RETURNS[PixelArray]; END. ImagerPixelArrays.mesa Copyright c 1984, Xerox Corporation. All rights reserved. Michael Plass, August 1, 1984 9:59:33 am PDT Doug Wyatt, August 10, 1984 2:50:42 pm PDT The size of the pixelArray, in slow and fast dimensions. transformation from (s, f) coordinates to "upright" (x, y) coordinates (see Interpress, section 4.6) A hint that indicates the source of the pixels. This may be NIL if the pixels come from another source. Indicates which layer of samples is of interest. The caller of get may elect to view just part of the array at one time, to avoid excessive demands on memory for large images. The contents of the returned PixelMap are to be considered readonly. A promise not to read the pixelMap any more. For compatibility, understands * in the name to refer to three separate files for the red, green, and blue separations. Does not copy the pixelMaps, so they should be treated as read-only data. Letting m default to NIL is equivalent to specifying Rotate[-90].Concat[Translate[0, sPixels]], i.e., horizontal scan-lines scanned left-to-right with scan lines appearing in top-to-bottom order. (This is the most popular, "frame-buffer", orientation for a sampled image.) Extracts the selected samples from the pixel array. Joins multiple sample planes into one PixelArray Êe˜™Jšœ Ïmœ/™:J™,J™*J˜—šÏk ˜ Jšœžœ˜'Jšœžœ˜2Jšœžœžœ˜J˜—Jšœžœž ˜$Jšœž˜J˜Jšžœžœžœ˜Jšœ žœ˜*Jšœžœ#˜8šœžœ"˜6J˜—Jšœžœžœ˜/šœžœžœ˜#Jšžœžœžœž˜$Jšœ˜—J˜Jšœ žœžœ˜%šœžœžœ˜šœžœ˜J™8—Jšœ ˜ šœ˜JšœF™FJšÏc™—šœ žœ˜J™/Jšœ žœ(™7—šœžœ˜ Jšœ˜šœžœ˜ J™0—šœ˜JšœÏnœm™~—Jšœžœ˜J™D—šœ žœžœ˜BJšœ,™,—Jšœž˜ J˜—J˜š œžœ žœžœ˜GJ™wJ˜—š  œžœ žœžœžœ˜SJšžœ˜!J™IJšœžœø™™J™——š  œžœ!žœžœžœžœ ˜YJ™3J˜—š  œžœžœžœ žœ ˜KJšœ0™0J™—Jšžœ˜—…—œ