Developing Imaging Applications With XIElib

Errata Sheet for 1st Printing

This is a work-in-progress that includes known typographical errors and content errors

If you feel that you have something to add to this page, or you have any questions about it or the sample code on the CD, please contact the book author directly by clicking here.

Color Plates (located in the center of the book)

Plate 11, Label should read: Error Image Calculated by Subtracting Plate 8 and Plate 10.

Plate 15, Label should read: Error Image Calculated by Subtracting Plate 12 and Plate 14.


Chapter 1

Page 1, paragraph 5, sentence 2. "Figures 1-1 through 1-11" should be "Figures 1-5 through 1-11".

Chapter 2

Page 21, format error in sentence 1 (extra space between words).

Page 32, paragraph 4, sentence 4, "An ASCII P2 (0 X 32) indicates that the file is PGM ASCII, and an ASCII P5 (0 X 35) indicates that the file is PGM binary" should be "An ASCII P2 (0x32) indicates that the file is PGM ASCII, and an ASCII P5 (0x35) indicates that the file is PGM binary"

Page 35, 5th line from the bottom, "count-" should be "count--".

Page 36, lines 8 and 19, "count-" should be "count--".

Page 37, line 28 and 3rd line from the bottom, "cSize-" should be "cSize--".

Page 37, last line, "i-" should be "i--".

Page 38, line 8, "i-" should be "i--".

Page 46, format error in routine SpeckleImage ("if" and "else" need to be aligned).

Page 46, the paragraph starting "The routine SpeckleImage is used to add..." is a comment, and should be bounded by /* and */ (see page 47, "Allocate the output buffer. We...").

Page 47, 5th line of code from bottom of listing, '}' character should be aligned with inner loop.

Chapter 3

Page 56, replace all of paragraph 1 with the sentence "Extensibility was one of the explicit design goals of XIE."

Page 56, paragraph 4, sentence 1 should be changed to "XIE techniques also allow server vendors to take advantage of hardware acceleration that may be provided by a particular hardware implementation."

Page 64, paragraph 3, sentence 2, change "Appendix 5" to "Appendix 1".

Page 67, samples source following paragraph 2, "XiePhotospacepSpace;" should be "XiePhotospace pSpace;"

Page 70, paragraph 4, sentence 3, change "sub routines" to "subroutines".

Page 73, paragraph 2, sentence 2, change "XIElib application will need" to "an XIElib application will need".

Chapter 4

Page 84, source code 8 lines from bottom of page, "ImportPhotomap IPElement" should be "ImportPhotomap *IPElement".

Page 85, paragraph 2, sentence 3, XieFloImportPhotomap should not be in italics.

Page 91, paragraph 1, sentence 2, "the resource ID of the photomap in the server" should be changed to "the resource ID of the photoflo in the server".

Page 99, paragraph 4, sentence 2, format error (extra space between "Figure" and "4-11").

Page 105, paragraph 1, sentence 2, "AbortPhotoflo" should be "Abort".

Page 107, line 12, fprintf( fp, "%d ImportClient elements are awaiting input", myDE ); should be fprintf( fp, "%d ImportClient elements are awaiting input", nDE );

Page 107, lines 20 and 21, fprintf( fp, "%d ExportClient elements are awaiting input", myDA ); should be fprintf( fp, "%d ExportClient elements are awaiting input", nDA );

Page 107, paragraph 1, sentence 1, "to the client or server resource" should be "to the client or to a server resource".

Page 110, paragraph 3, sentence 2, "when the ImportClientROI photo element is defined" should be changed to "when the ImportClientROI element is defined".

Page 112, last line of source code, there should not be a line break between 'f' and "inal". The last two arguments to PumpTheClientData are "band" and "final".

Page 114, sentence 3, "Both of the above examples assume that the image data is RGB" should be changed to "Both of the above examples assume that the colorspace of the image data is RGB".

Page 119, line 19, change "bytes >2048 ? 2048 : bytes," to "bytes > MAXREAD ? MAXREAD : bytes,"

Page 120, line 9, change "bytes = 2048;" to "bytes = MAXREAD;".

Page 120, line 25, change "bytes = 2048;" to "bytes = MAXREAD;".

Chapter 5

Page 153, paragraph 5, sentence 1, "allocated by a previous call to XieCreatePhotofloGraph" should be "allocated by a previous call to XieAllocatePhotofloGraph".

Page 162, paragraph 5, sentence 1, "allocated by a previous call to XieCreatePhotofloGraph" should be "allocated by a previous call to XieAllocatePhotofloGraph".

Page 167, paragraph 2, sentence 1, "allocated by a previous call to XieCreatePhotofloGraph" should be "allocated by a previous call to XieAllocatePhotofloGraph".

Page 169, paragraph 4, sentence 1, "allocated by a previous call to XieCreatePhotofloGraph" should be "allocated by a previous call to XieAllocatePhotofloGraph".

Page 171, paragraph 1, sentence 1, "allocated by a previous call to XieCreatePhotofloGraph" should be "allocated by a previous call to XieAllocatePhotofloGraph".

Page 171, paragraph 3, last sentence, "by running the following photoflo once to populate the server-side LUT resource (see Figure 5-12)" should be changed to "by running the photoflo depicted in Figure 5-12 to populate the server-side LUT resource".

Page 172, Figure 5-13, element labeled ICL should instead be labeled IL.

Page 172, paragraph 2, sentence 1, "allocated by a previous call to XieCreatePhotofloGraph" should be "allocated by a previous call to XieAllocatePhotofloGraph".

Page 172, paragraph 4, sentence 2, "See Chapter 12" should be changed to "See Chapter 12 and the discussion of ImportClientPhoto earlier in this chapter".

Page 174, paragraph 2, sentence 1, "allocated by a previous call to XieCreatePhotofloGraph" should be "allocated by a previous call to XieAllocatePhotofloGraph".

Page 174, paragraph 8, "less than , where" should be changed to "less than or equal to 2^n, where".

Page 179, paragraph 1, sentence 1 should read "A client can use the ImportDrawable import element to import colormap index data from a core X Pixmap or Window resource". Paragraph 1, sentence 2, "This data can then be read by any process or export element in the photoflo that requires image data" should be removed. While it is true that the data can be read by any export or process element that accepts image data, the only elements that should receive this data directly are ExportDrawable or ConvertFromIndex. All other elements (those capable of accepting image data) should do so only after the colormap index data has been converted to image data by Point or ConvertToIndex.

Page 179, paragraph 2, sentence 1, "deep X Window or Pixmap into the photoflo as image data" should be changed to "deep X Window or Pixmap into the photoflo as colormap index data".

Page 180, paragraph 1, sentence 1, "allocated by a previous call to XieCreatePhotofloGraph" should be "allocated by a previous call to XieAllocatePhotofloGraph".

Page 180, paragraph 2, "Drawable is the X resource ID that identifies the Pixmap or Window from which the image data will be extracted", remove the word "image".

Page 180, paragraph 4, "that will be replaced for all pixels in the image that are obscured" should be changed to "that will be replaced for all pixels in the Window that are obscured".

Page 180, paragraph 6, sentence 1, "Notice that the image, once" should be changed to "Notice that the data, once"

Page 180, paragraph 7, sentence 1, "The image data generated by ExportDrawable will have a pixel depth that is equivalent to the depth of the Window or Pixmap from which the image was imported, and a width and height that was specified by the width and height arguments to XieFloImportDrawable, as set by the client" should be changed to "The data generated by ImportDrawable will have a pixel depth that is equivalent to the depth of the Window or Pixmap from which the data was imported, and a width and height that was specified by the width and height arguments to XieFloImportDrawable, as set by the client"

Page 185, paragraph 2, sentence 1, "Bitonal image data can be read directly" should be changed to "Bitonal image data can be generated directly".

Chapter 6

Page 186, paragraph 1, sentence 1, "An image file format describes" should be "An image file format defines".

Page 188, paragraph 1, sentence 4, "Similarly, clients that create photoflos containing ExportPhotomap and ExportClientPhotomap elements" should be "Similarly, clients that create photoflos containing ExportPhotomap and ExportClientPhoto elements"

Page 188, paragraph 1, last sentence, "in the arguments that are passed to XieFloExportPhotomap and XieFloExportClientPhoto" should be "in the arguments that are passed to XieFloImportClientPhoto, XieFloExportPhotomap, and XieFloExportClientPhoto".

Chapter 7

Page 207, paragraph 1, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 207, paragraph 2, sentence 1, "to be rendered to the ExportDrawable element" should be " to be rendered by the ExportDrawable element".

Page 210, paragraph 2, sentence 3, "Xlib will first check to see if the GC specified as an argument to routine corresponding" should be "Xlib will first check to see if the GC specified as an argument to the routine corresponding".

Page 210, table at bottom of page, meaning of "-p planeMask" should be "set GC plane_mask to planeMask (default is ~0)".

Page 214, first line of code at top of page, "if `( applyClipMask == True )" should be "if ( applyClipMask == True )".

Page 215, paragraph 2, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 215, paragraph 3, sentence 1, "to be rendered to the ExportDrawablePlane element" should be " to be rendered by the ExportDrawablePlane element".

Page 216, table at bottom of page, meaning of "-p planeMask" should be "set GC plane_mask to planeMask (default is ~0)".

Page 222, paragraph 1, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 222, paragraph 4, "that contains an ImportROI element which that roi as a source element" should be "that contains an ImportROI element that references the roi as a source element".

Page 223, in the section "Errors and Events Associated with ExportROI", the description of xieErrNoFloAlloc should be "sent if XIE was unable to allocate memory required to perform or support the ExportROI element".

Page 224, paragraph 1, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 226, paragraph 2, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 226, paragraph 4, sentence 1, "ExportClientPhoto element" should be "ExportPhotomap element".

Page 228, paragraph 2, last sentence, "for each photoflo execution:" should be "for each photoflo execution."

Page 231, paragraph 1, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 232, last paragraph, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 234, paragraph 2, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 237, paragraph 3, sentence 5, "2^16" should be "2^18".

Chapter 8

Page 242, last paragraph, sentence 2, "CIELab" should be "CIEL*a*b*".

Page 243, paragraph 3, sentence 7, "identify operation" should be "identity operation".

Page 246, paragraph 1, sentences 5, 6, and 7, hex constants "0X07", "0X02", and "0X01" should be "0x07", "0x02", and "0x01".

Page 247, last paragraph, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 248, paragraph 2, sentence 1 should be "Src2 optionally specifies a process, ImportPhotomap, ImportDrawable, ImportDrawablePlane, or ImportClientPhoto element in the photoflo graph that provides a second (dyadic) input to the Arithmetic element."

Page 248, note 2 of table should be "(2) indicates result when image data is unconstrained".

Page 249, paragraph 2, sentence 3, "0X7" should be "0x7".

Page 253, paragraph 1, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 253, paragraph 7, sentence 3, "0X7" should be "0x7".

Page 254, paragraph 3, sentence 1, "sent by an Arithmetic element" should be changed to "sent by a Blend element".

Page 255, paragraph 3, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 256, paragraph 5, sentence 3, "0 X 7" should be "0x7".

Page 256, paragraph 5, sentence 4, "0X07" should be "0x07".

Page 256, paragraph 5, sentence 4, "0X07" should be "0x07".

Page 257, paragraph 3, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 258, paragraph 2, sentence 1, "0X7" should be "0x7".

Page 259, paragraph 3, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 259, last paragraph, sentence 3, "0X7" should be "0x7".

Page 261, paragraph 3, sentence 3, "0X07" should be "0x07".

Page 261, paragraph 3, sentence 4, "0X01" should be "0x01".

Chapter 9

Page 263, Table 9-1, colorspace attribute, "CIELa*b*" should be "CIEL*a*b*".

Page 264, change paragraph 7 to "Dither takes SingleBand or TripleBand image data and reduces its levels attribute to a client-specified value by requantizing the image data, using a client-specified dither algorithm."

Page 265, paragraph 1, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 265, paragraph 2, sentence 2 should be "Each must be the phototag of a process element, ImportPhotomap, ImportDrawable, ImportDrawablePlane, or ImportClientPhoto element providing SingleBand image data."

Page 267, paragraph 2, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be "by a previous call to XieAllocatePhotofloGraph".

Page 267, paragraph 6, last sentence, change "earlier in this section." to "earlier in this section, for example."

Page 268, paragraph 5, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 278, paragraph 3, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 278, paragraph 4, sentence 2 should be "The element must be a process, ImportPhotomap, ImportClientPhoto, ImportDrawable, or ImportDrawablePlane element located in the photoflo graph to which the Unconstrain element is being added".

Page 279, section "Errors and Events Associated with Unconstrain", reason for xieErrNoFloSource error should be "sent if src is not the phototag of a process element, ImportPhotomap, ImportClientPhoto, ImportDrawable, or ImportDrawablePlane"

Page 279, second bullet, ExportClientPhoto is also an element that cannot accept unconstrained source.

Page 280, paragraph 1, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 283, paragraph 2, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 283, paragraph 4, sentence 4, "being fed into the ConvertFromIndex" should be "being fed into ConvertFromIndex".

Page 283, paragraph 4, sentence 5, "of the colormap that is installed on the drawable" should be "of the colormap that is associated with the drawable".

Page 286, paragraph 4, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 287, first line, "CIELa*b*" should be "CIEL*a*b*".

Page 288, paragraph 3, sentence 2, "ImportPhotomap, or ImportClientPhoto" should be changed to "ImportPhotomap, ImportClientPhoto, ImportDrawable, or ImportDrawablePlane".

Page 288, paragraph 4, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 289, paragraph following bullet list of techniques, remove the last sentence "See Chapter 19 for a discussion of its use."

Page 290, top of page, "ImportPhotomap, or ImportClientPhoto" should be changed to "ImportPhotomap, ImportClientPhoto, ImportDrawable, or ImportDrawablePlane".

Page 291, paragraph 2, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 291, list of techniques in middle of page, "conversion will be made from CIELa*b* to RGB" should be "conversion will be made from CIEL*a*b* to RGB".

Page 291, paragraph 5, sentence 1, "CIELab" should be "CIEL*a*b*".

Page 294, paragraph 1, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be " by a previous call to XieAllocatePhotofloGraph".

Page 294, paragraph 2, sentence 2, "ImportPhotomap, or ImportClientPhoto" should be changed to "ImportPhotomap, ImportClientPhoto, or ImportDrawable".

Chapter 10

Page 305, paragraph 2, sentence 1, remove the word "below".

Page 305, paragraph 7, sentence 2, "row i and column j" should be "column i and row j".

Page 306, bottom of page, description of order argument "kernel.;" should be "kernel;"

Page 307, paragraph 1, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be "by a previous call to XieAllocatePhotofloGraph".

Page 307, paragraph 2, sentence 2, "ImportPhotomap, or ImportClientPhoto" should be changed to "ImportPhotomap, ImportClientPhoto, or ImportDrawable".

Page 307, paragraph 2. Add the sentence "The image data must not be bitonal. Sending bitonal image data will result in a FloMatch error from the server when the photoflo is executed."

Page 308, in section "Errors and Events Associated with Convolve", the sentence "ImportPhotomap, or ImportClientPhoto" should be changed to "ImportPhotomap, ImportClientPhoto, or ImportDrawable".

Page 309, paragraph 6, sentence 1, "image in Figure 10-18 to decrease" should be changed to "image in Figure 10-17 to decrease".

Page 312, paragraph 3, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be "by a previous call to XieAllocatePhotofloGraph".

Page 312, paragraph 4, sentence 2, "ImportPhotomap, or ImportClientPhoto" should be changed to "ImportPhotomap, ImportClientPhoto, or ImportDrawable".

Page 312, paragraph 4. Add the sentence "The image data must not be bitonal. Sending bitonal image data will result in a FloMatch error from the server when the photoflo is executed."

Page 314, paragraph 3, sentence has formatting errors that are obvious.

Page 316, in section "Errors and Events Associated with MatchHistogram", the sentence "ImportPhotomap, or ImportClientPhoto" should be changed to "ImportPhotomap, ImportClientPhoto, or ImportDrawable".

Page 317, paragraph 3, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be "by a previous call to XieAllocatePhotofloGraph".

Page 319, paragraph 3, sentence 3, remove the words "and LUT, which are". The LUT did not make it to Figure 10-29.

Page 320, paragraph 3, sentence 5, "from Geometry displayable values." should be "from Geometry to displayable values."

Page 323, paragraph 1, sentence 1, "command line arguments and connection to" should be "command line arguments and connecting to".

Page 327, paragraph 1, sentence 3 should be "The main differences are in the code that is used to initialize the LUT, and pass it to ImportClientLUT."

Page 332, in section "Errors and Events Associated with Point", the sentence "ImportPhotomap, or ImportClientPhoto" should be changed to "ImportPhotomap, ImportClientPhoto, ImportDrawable, or ImportDrawablePlane".

Page 332, in section "Errors and Events Associated with Point", the sentence "bandMask is not 0X7" should be changed to "bandMask is not 0x7".

Chapter 11

Page 339, paragraph 1, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be "by a previous call to XieAllocatePhotofloGraph".

Page 339, paragraph 2, sentence 2, "ImportPhotomap, or ImportClientPhoto" should be changed to "ImportPhotomap, ImportClientPhoto, ImportDrawable, or ImportDrawablePlane".

Page 340, paragraph 1, sentence 3 "0X7" should be "0x7".

Page 352, paragraph 1, sentence 1, "by a previous call to XieCreatePhotofloGraph" should be "by a previous call to XieAllocatePhotofloGraph".

Chapter 12

Page 397, paragraph 4, sentence 1, "window ID argument (0X42d)" should be "window ID argument (0x42d)".

Page 404, Table 12-2, all instances of "0X99" should be "0x99", and "0X00" should be "0x00".

Page 408, paragraph 2, sentence 4, "is non-zero in value or if it identifies" should be "is non-zero in value and it identifies".

Chapter 13

Page 418, paragraph 3, last sentence should be "Table 13-1 enumerates the techniques defined by the 5.0 version of XIE".

Chapter 14

Page 452, paragraph 2, sentence 3, "the Convolve is using a 5 X 5 kernel" should be "Convolve is using a 5 X 5 kernel".

Page 473, last paragraph, sentence 1, and Figure 14-25 on page 474. The cat's name is, or was, "Tiger", not "Leaky". Thanks to my brother Rod for pointing this error out.

Chapter 15

Page 486, paragraph 5, sentence 4 (last sentence), "are suitable for use by XIElib clients at the matrix inputs" should be "are suitable for use by XIElib clients as the matrix inputs"

Page 487, paragraph 1, sentence 2, "XieFloConvertFromIndex or XieFloConvertToIndex" should be "XieFloConvertFromRGB or XieFloConvertToRGB".

Page 491, paragraph 1, sentence 4, "A color in the CIEL*A*B* colorspace is transformation" should be "A color in the CIEL*A*B* colorspace is a transformation".

Page 493, paragraph 7, sentence 1, "(0X212)" should be "(0x212)".

Page 501, list of ConvertToRGB techniques, "convert from CIELab colorspace to RGB" should be "convert from CIEL*a*b* colorspace to RGB".

Chapter 16

Page 536, paragraph 2, last line, "0X001" should be "0x001".

Chapter 17

Page 551, paragraph 1, sentence 1, replace "Note that degradation of the image is virtually undetectable in the printed versions except when encoded with a Q factor = 0" with "Observe that the density of the error image in Figure 17-4 is greater than that of the error image shown in Figure 17-8". In an earlier draft of the book, Figures 17-4 and 17-8 depicted JPEG encodings of Figures 17-1 and 17-5, respectively, using a Q factor of 0. For the final draft of the manuscript, these were replaced with error images and the text referring to the original versions of 17-4 and 17-8 was overlooked.

Chapter 18

Page 575, the argument "factor" should be declared as a float, not as an int. Also, the DATA macro really doesn't need the height argument. To make things more clear, here is a complete program (tested under Solaris):

#include <stdio.h>
#include <math.h>

#define DATA( buf, i, j, w ) (buf[i * w + j])

#define dHeight	4
#define dWidth 	4
#define sHeight 2
#define sWidth 	2

#define sSize 	4	
#define dSize	16

main( argc, argv )
int argc;
char *argv[];
{
        static char 	in[sSize] = { 0, 1, 2, 3 };
        char    	out[dSize];
        int     	i, j;
        float   	factor;

        /* first, scale a 2x2 image with intensity values:

                0 1
                2 3

        into a 4x4 result image:

                0 0 1 1
                0 0 1 1
                2 2 3 3
                2 2 3 3
        */

        factor = 2.0;

        for ( i = 0; i < dWidth; i++ )
                for ( j = 0; j < dHeight; j++ ) {
                        DATA( out, i, j, dWidth ) =
                                DATA( in, (int) floor( i / factor ),
                                (int) floor( j / factor ), sWidth );
                        printf( "%d, %d is %d\n", i, j,
                                DATA( out, i, j, dWidth ) );
                }

        /* next, perform the inverse: scale down from 4x4 to original 2x2 */

        factor = 0.5;

        for ( i = 0; i < sWidth; i++ )
                for ( j = 0; j < sHeight; j++ ) {
                        DATA( in, i, j, sWidth ) =
                                DATA( out, (int) floor( i / factor ),
                                (int) floor( j / factor ), dWidth );
                        printf( "%d, %d is %d\n", i, j,
                                DATA( in, i, j, sWidth ) );
                }
}

Chapter 19

Page 596, paragraph 2, sentence 3, "a red_mask of 0Xff0000, a green_mask of 0Xff00, and a blue_mask of 0Xff" should be "a red_mask of 0xff0000, a green_mask of 0xff00, and a blue_mask of 0xff".

Page 596, paragraph 2, sentence 4, "a red_mask of 0X7, a green_mask of 0X38, and a blue_mask of 0Xc0" should be "a red_mask of 0x7, a green_mask of 0x38, and a blue_mask of 0xc0".

Page 599, paragraph 2, sentence 6, "making the very difficult to display SingleBand" should be "making it very difficult to use them to display SingleBand".

Page 612, code listing, character after line "unsigned long mask" should be removed.

Page 627, paragraph 2, should be "The function AddSGTB adds the elements shown in Figure 19-4 (BandExtract and ExportDrawable) to the photoflo graph".

Page 634, paragraph 6, "the Xlib function XDefaultColormap the Xlib macro DefaultColormap" should be "the Xlib function XDefaultColormap or the Xlib macro DefaultColormap".

Glossary

Page 639, codec, "technique of algorithm" should be "technique or algorithm".

Page 643, Luminance Band, third sentence, "For a YCbCr image, it can be obtained by passing the image through BandExtract with coefficients set to CCIR constants" should be "For an RGB image, it can be obtained by passing the image through BandExtract with coefficients set to CCIR constants".

Index

Page 664, Remove entry for XieCreatePhotofloGraph.
  • [Return to Syd's Home Page]