home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / X / mit / doc / CLX / s07.doc < prev    next >
Encoding:
Interleaf document  |  1989-10-18  |  37.8 KB  |  1,362 lines

  1. <!OPS, Version = 5.2>
  2.  
  3. <!Document,
  4.     Print Rev Bars =    no,
  5.     Final Output Device =    "ps",
  6.     Default Printer =    "nearest-adps">
  7.  
  8. <!Font Definitions,
  9.     F2 = Times 10 Italic,
  10.     F3 = Times 10,
  11.     F4 = Times 8 Italic,
  12.     F5 = Times 18 Bold,
  13.     F6 = Times 10 Bold,
  14.     F7 = Times 12 Bold,
  15.     F8 = Symbol_B 8>
  16.  
  17. <!Page,
  18.     Bottom Margin =        1 inches,
  19.     Left Margin =        1 inches,
  20.     Right Margin =        1.15 inches,
  21.     First Page =        Right,
  22.     Starting Page # =     Inherit,
  23.     Page # Prefix =        "7<#1e>",
  24.     Hyphenation =        on,
  25.     Consecutive Hyphens =    2,
  26.     Vert. Just. =        off>
  27.  
  28. <!Autonumber Stream, List, 2,
  29.     Level 2 Suffix =    ,
  30.     Level 2 Starting Value = 0,
  31.     Level 2 Show =        no>
  32.  
  33. <!Autonumber Stream, Outline, 3,
  34.     Level 1 Symbol Type =    UPPER ROMAN,
  35.     Level 2 Symbol Type =    UPPER ALPHA>
  36.  
  37. <!Autonumber Stream, figure, 2,
  38.     Level 1 Prefix =    "Figure ",
  39.     Level 1 Suffix =    "<#1e>",
  40.     Level 1 Show =        no,
  41.     Level 2 Suffix =    ,
  42.     Level 2 Starting Value = 0,
  43.     Level 2 Show =        no>
  44.  
  45. <!Autonumber Stream, figurelet, 2,
  46.     Level 1 Symbol Type =    UPPER ALPHA,
  47.     Level 1 Prefix =    "Figure ",
  48.     Level 1 Suffix =    "<#1e>",
  49.     Level 1 Show =        no,
  50.     Level 2 Suffix =    "<#04>">
  51.  
  52. <!Autonumber Stream, invisible, 1,
  53.     Level 1 Suffix =    ,
  54.     Level 1 Show =        no>
  55.  
  56. <!Autonumber Stream, item, 2,
  57.     Level 2 Symbol Type =    LOWER ALPHA,
  58.     Level 2 Trail =        yes>
  59.  
  60. <!Autonumber Stream, paralet, 4,
  61.     Level 1 Symbol Type =    UPPER ALPHA,
  62.     Level 1 Suffix =    ,
  63.     Level 1 Show =        no,
  64.     Level 2 Prefix =    .,
  65.     Level 2 Suffix =    ,
  66.     Level 3 Prefix =    .,
  67.     Level 3 Suffix =    ,
  68.     Level 4 Prefix =    .,
  69.     Level 4 Suffix =    >
  70.  
  71. <!Autonumber Stream, paranum, 4,
  72.     Level 1 Suffix =    ,
  73.     Level 1 Show =        no,
  74.     Level 2 Prefix =    .,
  75.     Level 2 Suffix =    ,
  76.     Level 3 Prefix =    .,
  77.     Level 3 Suffix =    ,
  78.     Level 4 Prefix =    .,
  79.     Level 4 Suffix =    >
  80.  
  81. <!Autonumber Stream, table, 2,
  82.     Level 1 Prefix =    "Table ",
  83.     Level 1 Suffix =    "<#1e>",
  84.     Level 1 Show =        no,
  85.     Level 2 Suffix =    >
  86.  
  87. <!Autonumber Stream, tablelet, 2,
  88.     Level 1 Symbol Type =    UPPER ALPHA,
  89.     Level 1 Prefix =    "Table ",
  90.     Level 1 Suffix =    "<#1e>",
  91.     Level 1 Show =        no,
  92.     Level 2 Suffix =    "<#04>">
  93.  
  94. <!Class, arg,
  95.     Bottom Margin =        0.08 inches,
  96.     Left Margin =        1.85 inches,
  97.     First Indent =        -0.25 inches,
  98.     Line Spacing =        1.121 lines,
  99.     Font =            F2,
  100.     Left Tab =        -0.25/0 inches>
  101.  
  102. <!Class, bullet,
  103.     Bottom Margin =        0.153 inches,
  104.     Left Margin =        1.85 inches,
  105.     First Indent =        -0.25 inches,
  106.     Line Spacing =        1.121 lines,
  107.     Font =            F3,
  108.     Allow Page Break Within = no,
  109.     Left Tab =        -0.50/0 inches>
  110.  
  111. <!Class, caption,
  112.     Top Margin =        0.07 inches,
  113.     Bottom Margin =        0.07 inches,
  114.     Line Spacing =        1.100 lines,
  115.     Font =            F4>
  116.  
  117. <!Class, fig,
  118.     Top Margin =        0.07 inches,
  119.     Bottom Margin =        0.07 inches,
  120.     Line Spacing =        1.100 lines,
  121.     Alignment =        Left,
  122.     Font =            F5>
  123.  
  124. <!Class, p1para,
  125.     Bottom Margin =        0.153 inches,
  126.     Left Margin =        1.60 inches,
  127.     First Indent =        -1.60 inches,
  128.     Line Spacing =        1.121 lines,
  129.     Alignment =        Left,
  130.     Font =            F3,
  131.     Allow Page Break Within = no,
  132.     Allow Page Break After = no,
  133.     Left Tab =        -1.70/0 inches>
  134.  
  135. <!Class, p1rule,
  136.     Bottom Margin =        0 inches,
  137.     Line Spacing =        1 lines,
  138.     Font =            F3,
  139.     Hyphenation =        off,
  140.     Allow Page Break After = no,
  141.     Left Tab =        0/0.75*13 inches>
  142.  
  143. <!Class, p1stacked,
  144.     Bottom Margin =        0 inches,
  145.     Left Margin =        1.60 inches,
  146.     First Indent =        -1.60 inches,
  147.     Line Spacing =        1 lines,
  148.     Font =            F3,
  149.     Allow Page Break Within = no,
  150.     Allow Page Break After = no,
  151.     Left Tab =        -1.60/-0.17/0 inches>
  152.  
  153. <!Class, p2para,
  154.     Bottom Margin =        0.153 inches,
  155.     Left Margin =        1.60 inches,
  156.     First Indent =        -1.60 inches,
  157.     Line Spacing =        1.121 lines,
  158.     Alignment =        Left,
  159.     Font =            F3,
  160.     Allow Page Break Within = no,
  161.     Allow Page Break After = no,
  162.     Left Tab =        0 inches,
  163.     Right Tab =        -1.60/-0.17 inches,
  164.     TOC Doc Name =        TOC>
  165.  
  166. <!Class, p2rule,
  167.     Bottom Margin =        0 inches,
  168.     Left Margin =        1.60 inches,
  169.     Line Spacing =        1 lines,
  170.     Alignment =        Left,
  171.     Font =            F3,
  172.     Hyphenation =        off,
  173.     Allow Page Break After = no,
  174.     Left Tab =        0/0.75*13 inches>
  175.  
  176. <!Class, p2stacked,
  177.     Bottom Margin =        0 inches,
  178.     Left Margin =        1.60 inches,
  179.     First Indent =        -1.60 inches,
  180.     Line Spacing =        1.121 lines,
  181.     Font =            F6,
  182.     Allow Page Break Within = no,
  183.     Allow Page Break After = no,
  184.     Left Tab =        0 inches,
  185.     Right Tab =        -1.60/-0.17 inches>
  186.  
  187. <!Class, para,
  188.     Bottom Margin =        0.153 inches,
  189.     Left Margin =        1.60 inches,
  190.     Line Spacing =        1.121 lines,
  191.     Font =            F3,
  192.     Allow Page Break Within = no,
  193.     Left Tab =        0/0.75*13 inches>
  194.  
  195. <!Class, return,
  196.     Bottom Margin =        0.077 inches,
  197.     Left Margin =        1.60 inches,
  198.     First Indent =        -0.90 inches,
  199.     Line Spacing =        1.121 lines,
  200.     Alignment =        Left,
  201.     Font =            F6,
  202.     Hyphenation =        off,
  203.     Allow Page Break Within = no,
  204.     Allow Page Break After = no,
  205.     Left Tab =        -0.90/0 inches,
  206.     Right Tab =        7.50 inches>
  207.  
  208. <!Class, secno,
  209.     Top Margin =        0.07 inches,
  210.     Bottom Margin =        0.07 inches,
  211.     Line Spacing =        1.100 lines,
  212.     Alignment =        Left,
  213.     Font =            F5,
  214.     Autonumber Name =    paranum>
  215.  
  216. <!Class, secrule,
  217.     Bottom Margin =        0 inches,
  218.     Line Spacing =        1 lines,
  219.     Font =            F3,
  220.     Hyphenation =        off,
  221.     Allow Page Break After = no,
  222.     Left Tab =        0/0.75*13 inches,
  223.     Autonumber Name =    table>
  224.  
  225. <!Class, sectitle,
  226.     Bottom Margin =        0 inches,
  227.     Line Spacing =        1 lines,
  228.     Alignment =        Right,
  229.     Font =            F5,
  230.     Hyphenation =        off,
  231.     New Page =        yes,
  232.     Left Tab =        0/0.75*13 inches>
  233.  
  234. <!Class, syntax,
  235.     Bottom Margin =        0.077 inches,
  236.     Left Margin =        1.60 inches,
  237.     First Indent =        -0.90 inches,
  238.     Line Spacing =        1.121 lines,
  239.     Alignment =        Left,
  240.     Font =            F6,
  241.     Hyphenation =        off,
  242.     Allow Page Break Within = no,
  243.     Allow Page Break After = no,
  244.     Left Tab =        -0.90/0 inches,
  245.     Right Tab =        8 inches>
  246.  
  247. <!Class, syntax0,
  248.     Bottom Margin =        0 inches,
  249.     Left Margin =        1.60 inches,
  250.     First Indent =        -0.90 inches,
  251.     Line Spacing =        1.121 lines,
  252.     Alignment =        Left,
  253.     Font =            F6,
  254.     Hyphenation =        off,
  255.     Allow Page Break Within = no,
  256.     Allow Page Break After = no,
  257.     Left Tab =        -0.90/0 inches,
  258.     Right Tab =        8 inches>
  259.  
  260. <!Class, "table",
  261.     Top Margin =        0.07 inches,
  262.     Bottom Margin =        0.07 inches,
  263.     Line Spacing =        1.100 lines,
  264.     Font =            F6,
  265.     Autonumber Name =    table>
  266.  
  267. <!Class, title,
  268.     Top Margin =        0.07 inches,
  269.     Bottom Margin =        0.07 inches,
  270.     Line Spacing =        1.100 lines,
  271.     Alignment =        Right,
  272.     Font =            F5,
  273.     TOC Doc Name =        TOC>
  274.  
  275. <!Master Frame,
  276.     Name =            "At Anchor",
  277.     Placement =        At Anchor,
  278.     Width =            0.41 inches,
  279.     Height =        0.137 inches,
  280.     Vertical Alignment =    0.03 inches,
  281.     Diagram =
  282. V4,
  283. (g9,32767,0
  284.  (E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
  285.   667,6))>
  286.  
  287. <!Master Frame,
  288.     Name =            p2rule,
  289.     Placement =        At Anchor,
  290.     Width =            4.75 inches,
  291.     Height =        0.15 inches,
  292.     Vertical Alignment =    0.007 inches,
  293.     Shared Contents =    yes,
  294.     Diagram =
  295. V4,
  296. (g9,1,0
  297.  (v4,1,0,4.733333,0.066611,0.006667,0.066723,17,2,0)
  298.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,0,1,1,0.066667,0.066667,6,6,0,0.066
  299.   667,6))>
  300.  
  301. <First Page Header, Frame =
  302. V4,
  303. (g9,0,0
  304.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,1,1,1,1,0.066667,0.066667,6,6,0,0.066
  305.   667,6))>
  306.  
  307. <Right Page Header, Frame =
  308. V4,
  309. (g9,1,0
  310.  (T8,1,12,4.533333,0.306667,1.8,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,
  311.   102,1101,2,
  312. <caption,
  313.     Alignment =        Right>
  314.  
  315. Images
  316.  
  317. <End Text>)
  318.  (E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
  319.   667,6))>
  320.  
  321. <Left Page Header, Frame =
  322. V4,
  323. (g9,1,0
  324.  (T8,1,12,0,0.293333,2.4,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,102,110
  325.   1,2,
  326. <caption>
  327.  
  328. Images
  329.  
  330. <End Text>)
  331.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,1,1,1,0.066667,0.066667,6,6,0,0.066
  332.   667,6))>
  333.  
  334. <Right Page Footer, Frame =
  335. V4,
  336. (g9,1,0
  337.  (t8,1,4,6.333333,0.266667,2,17,@nntimsps10b,\240)
  338.  (t8,2,4,0.006667,0.266667,0,17,@nntimsps8i,CLX\ Programmer's\ Reference)
  339.  (v4,3,0,0,0.066667,6.333333,0.066554,17,2,0)
  340.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,1,1,1,0.066667,0.066667,6,6,0,0.066
  341.   667,6))>
  342.  
  343. <Left Page Footer, Frame =
  344. V4,
  345. (g9,1,0
  346.  (t8,1,4,0,0.266667,0,17,@nntimsps10b,\240)
  347.  (t8,2,4,6.333333,0.266667,2,17,@nntimsps8i,CLX\ Programmer's\ Reference)
  348.  (v4,3,0,0.026667,0.066667,6.333333,0.066554,17,2,0)
  349.  (E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
  350.   667,6))>
  351.  
  352. <sectitle,
  353.     Allow Page Break Within = no,
  354.     Allow Page Break After = no>
  355.  
  356. <|,"7<#1e>81">
  357. <Frame,
  358.     Name =            "At Anchor",
  359.     Placement =        At Anchor,
  360.     Width =            4.72 inches,
  361.     Height =        0.94 inches,
  362.     Vertical Alignment =    0.03 inches,
  363.     Diagram =
  364. V4,
  365. (g9,1,0
  366.  (T8,1,12,0.133333,0.72,4.563333,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512
  367.   ,102,1101,3,
  368. <title>
  369.  
  370. IMAGES
  371.  
  372. <End Text>)
  373.  (E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
  374.   667,6))>
  375. <Frame,
  376.     Name =            "At Anchor",
  377.     Placement =        At Anchor,
  378.     Width =            1.626 inches,
  379.     Height =        0.938 inches,
  380.     Vertical Alignment =    0 inches,
  381.     Diagram =
  382. V4,
  383. (g9,1,0
  384.  (T8,1,12,0.066667,0.276667,0,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,10
  385.   2,1101,3,
  386. <secno,
  387.     TOC Doc Name =        TOC>
  388.  
  389. <Autonum, paranum, 1, First = Yes>
  390.  
  391. <End Text>)
  392.  (T8,2,12,0.026667,0.733333,0,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,10
  393.   2,1101,3,
  394. <"table">
  395.  
  396. <Autonum, table, 1, First = Yes>
  397.  
  398. <End Text>)
  399.  (T8,3,12,0.066667,0.6,0,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,102,110
  400.   1,3,
  401. <fig,
  402.     Alignment =        Both,
  403.     Font =            F6,
  404.     Autonumber Name =    figure>
  405.  
  406. <Autonum, figure, 1, First = Yes>
  407.  
  408. <End Text>)
  409.  (g9,5,0
  410.    (p7,5,8,19
  411.      (g9,5,0
  412.        (g9,5,0
  413.          (v4,5,0,0.266667,0,1.6,0,17,1,0)
  414.          (v4,6,0,1.6,0,1.6,0.933333,17,1,0)
  415.          (v4,7,0,1.6,0.933333,0.266667,0.933333,17,1,0)
  416.          (v4,8,0,0.266667,0.933333,0.266667,0,17,1,0))))
  417.    (g9,10,8
  418.      (p7,10,1032,13
  419.        (g9,10,0
  420.          (g9,10,0
  421.            (v4,10,0,1.183159,0.934816,1.497546,0.296785,17,1,0)
  422.            (v4,11,0,1.497546,0.296785,1.497546,0.146666,17,1,0)
  423.            (v4,12,0,1.497546,0.146666,0.846316,0.146666,17,1,0)
  424.            (v4,13,0,0.846316,0.146666,0.846316,0.371849,17,1,0)
  425.            (v4,14,0,0.846316,0.371849,1.04842,0.371849,17,1,0)
  426.            (v4,15,0,1.04842,0.371849,1.04842,0.296785,17,1,0)
  427.            (v4,16,0,1.04842,0.296785,1.29544,0.296785,17,1,0)
  428.            (v4,17,0,1.29544,0.296785,0.981051,0.934816,17,1,0)
  429.            (v4,18,0,0.981051,0.934816,1.183159,0.934816,17,1,0))))
  430.      (g9,19,2048
  431.        (v4,19,33,0.846316,0.146666,0.846316,0.146666,17,0,0)
  432.        (v4,20,33,0.846316,1.16,0.846316,1.16,17,0,0)
  433.        (v4,21,33,1.52,1.16,1.52,1.16,17,0,0)
  434.        (v4,22,33,1.52,0.146666,1.52,0.146666,17,0,0))))
  435.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,1,1,1,0.066667,0.066667,6,6,0,0.066
  436.   667,6))>
  437.  
  438. <secrule,
  439.     Allow Page Break Within = no,
  440.     Allow Page Break After = yes,
  441.     Autonumber Name =    >
  442.  
  443. <Index, "image", To Named = sectitle>
  444. <Frame,
  445.     Name =            "At Anchor",
  446.     Placement =        At Anchor,
  447.     Width =            6.35 inches,
  448.     Height =        0.153 inches,
  449.     Vertical Alignment =    0.007 inches,
  450.     Diagram =
  451. V4,
  452. (g9,1,0
  453.  (v4,1,0,0.006667,0.066723,6.333333,0.066611,17,2,0)
  454.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,0,1,1,0.066667,0.066667,6,6,0,0.066
  455.   667,6))>
  456.  
  457. <p1para,
  458.     Alignment =        Both,
  459.     Allow Page Break After = yes>
  460.  
  461. <F7>Introduction<Tab><F6>7.1<F0><#04>The X protocol provides for 
  462. the transfer of images (two<#1e>dimensional arrays<SP>of pixel data) 
  463. between a client program and a <F6>drawable<F0>. The format for<SP>image 
  464. data can vary considerably. In order to present a uniform data<SP>representatio
  465. n for the manipulation of a variety of images, CLX defines a<SP>special <F6>im
  466. age<F0> data type. Additional <F6>image<F0> subtypes <#1f> <F6>image<#1e>xy
  467. <F0> and <F6>image<#1e>z<F0><SP><#1f> allow for the representation 
  468. of an image either as a sequence of bit<SP>planes or as an array of 
  469. pixels. CLX includes functions for accessing <F6>image<F0><SP>objects; 
  470. for transferring image data between <F6>image<F0> objects, <F6>drawables
  471. <F0>, and<SP>files; and also for direct transfer of raw image data.
  472.  
  473. <p1rule>
  474.  
  475. <Frame,
  476.     Name =            "At Anchor",
  477.     Placement =        At Anchor,
  478.     Width =            6.35 inches,
  479.     Height =        0.153 inches,
  480.     Vertical Alignment =    0.007 inches,
  481.     Diagram =
  482. V4,
  483. (g9,1,0
  484.  (v4,1,0,0.006667,0.066723,6.333333,0.066611,17,2,0)
  485.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,0,1,1,0.066667,0.066667,6,6,0,0.066
  486.   667,6))>
  487.  
  488. <p1para,
  489.     Alignment =        Both,
  490.     Allow Page Break After = yes>
  491.  
  492. <F7>Image Types<Tab><F6>7.2<F0><#04>The <F6>image<F0> data type 
  493. is the base type for all <F6>image<F0> objects. <F6>image<#1e>xy<F0> 
  494. and <F6>image<#1e>z<F0> are subtypes of the <F6>image<F0> type 
  495. which furnish accessors specialized for different image representations.
  496.  
  497. <p2rule>
  498.  
  499. <Frame,
  500.     Name =            p2rule,
  501.     Placement =        At Anchor,
  502.     Width =            4.75 inches,
  503.     Height =        0.15 inches,
  504.     Vertical Alignment =    0.007 inches,
  505.     Shared Contents =    yes>
  506.  
  507. <p2para,
  508.     Alignment =        Both,
  509.     Allow Page Break Within = yes,
  510.     Allow Page Break After = yes,
  511.     TOC Doc Name =        >
  512.  
  513. <Tab><F6>Basic Images<Tab>7.2.1<F0><#04>The following paragraphs 
  514. describe the CLX functions that can be used to access all types of <F6>image
  515. <F0> objects.
  516.  
  517. <syntax0>
  518.  
  519. image<#1e>blue<#1e>mask<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>blue<#1e>mask", Sort String = "image<#1e>blue<#1e>mask">
  520.  
  521. <return>
  522.  
  523. <Tab><F3>Returns: <F2><HR>
  524.   mask<F3> <#1f> Type <F0>pixel<F3> or <F0>null<F3>.
  525.  
  526. <para>
  527.  
  528. Returns (and with <F6>setf<F0>) changes the <F2>mask<F0> that 
  529. selects the pixel subfield<SP>for blue intensity values. The <F2>mask<F0> 
  530. is non<#1e><F6>nil<F0> only for images for<SP><F6>:direct<#1e>color<F0> 
  531. or <F6>:true<#1e>color<F0> visual types.
  532.  
  533. <arg>
  534.  
  535. image <#1f> <F3>An <F6>image<F3> object.
  536.  
  537. <syntax0>
  538.  
  539. image<#1e>depth<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>depth", Sort String = "image<#1e>depth">
  540.  
  541. <return>
  542.  
  543. <Tab><F3>Returns: <F2><HR>
  544.   depth<F3> <#1f> Type <F0>card8<F3>.
  545.  
  546. <para>
  547.  
  548. Returns the <F2>depth<F0> (that is, the number of bits per pixel) 
  549. for the <F2>image<F0>. 
  550.  
  551. <arg>
  552.  
  553. image <#1f> <F3>An <F6>image<F3> object.
  554.  
  555. <syntax0>
  556.  
  557. image<#1e>green<#1e>mask<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>green<#1e>mask", Sort String = "image<#1e>green<#1e>mask">
  558.  
  559. <return>
  560.  
  561. <Tab><F3>Returns: <F2><HR>
  562.   mask<F3> <#1f> Type <F0>pixel<F3> or <F0>null<F3>.
  563.  
  564. <para>
  565.  
  566. Returns (and with <F6>setf<F0>) changes the mask that selects the 
  567. pixel subfield<SP>for green intensity values. The mask is non<#1e><F6>nil
  568. <F0> only for images for<SP><F6>:direct<#1e>color<F0> or <F6>:true<#1e>colo
  569. r<F0> visual types.
  570.  
  571. <arg>
  572.  
  573. image <#1f> <F3>An <F6>image<F3> object.
  574.  
  575. <syntax0,
  576.     New Page =        yes>
  577.  
  578. <|,"7<#1e>82">image<#1e>height<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>height", Sort String = "image<#1e>height">
  579.  
  580. <return>
  581.  
  582. <Tab><F3>Returns: <F2><HR>
  583.   height<F3> <#1f> Type <F0>card16<F3>.
  584.  
  585. <para>
  586.  
  587. Returns the <F2>height<F0> of the <F2>image<F0> in pixels.
  588.  
  589. <arg>
  590.  
  591. image <#1f> <F3>An <F6>image<F3> object.
  592.  
  593. <syntax0>
  594.  
  595. image<#1e>name<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>name", Sort String = "image<#1e>name">
  596.  
  597. <return>
  598.  
  599. <Tab><F3>Returns: <F2><HR>
  600.   name<F3> <#1f> Type <F0>stringable<F3> or <F0>null<F3>.
  601.  
  602. <para>
  603.  
  604. Returns and (with <F6>setf<F0>) changes the <F2>name<F0> string 
  605. optionally associated with<SP>the <F2>image<F0>.
  606.  
  607. <arg>
  608.  
  609. image <#1f> <F3>An <F6>image<F3> object.
  610.  
  611. <syntax0>
  612.  
  613. image<#1e>plist<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>plist", Sort String = "image<#1e>plist">
  614.  
  615. <return>
  616.  
  617. <Tab><F3>Returns: <F2><HR>
  618.   plist<F3> <#1f> Type <F0>list<F3>.
  619.  
  620. <para>
  621.  
  622. Returns and (with <F6>setf<F0>) changes the <F2>image<F0> property 
  623. list. The property list<SP>is a hook for added application extensions.
  624.  
  625. <arg>
  626.  
  627. image <#1f> <F3>An <F6>image<F3> object.
  628.  
  629. <syntax0>
  630.  
  631. image<#1e>red<#1e>mask<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>red<#1e>mask", Sort String = "image<#1e>red<#1e>mask">
  632.  
  633. <return>
  634.  
  635. <Tab><F3>Returns: <F2><HR>
  636.   mask<F3> <#1f> Type <F0>pixel<F3> or <F0>null<F3>.
  637.  
  638. <para>
  639.  
  640. Returns (and with <F6>setf<F0>) changes the <F2>mask<F0> which 
  641. selects the pixel subfield<SP>for red intensity values. The <F2>mask<F0> 
  642. is non<#1e><F6>nil<F0> only for images for<SP><F6>:direct<#1e>color<F0> 
  643. or <F6>:true<#1e>color<F0> visual types.
  644.  
  645. <arg>
  646.  
  647. image <#1f> <F3>An <F6>image<F3> object.
  648.  
  649. <syntax0>
  650.  
  651. image<#1e>width<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>width", Sort String = "image<#1e>width">
  652.  
  653. <return>
  654.  
  655. <Tab><F3>Returns: <F2><HR>
  656.   width<F3> <#1f> Type <F0>card16<F3>.
  657.  
  658. <para>
  659.  
  660. Returns the <F2>width<F0> of the <F2>image<F0> in pixels.
  661.  
  662. <arg>
  663.  
  664. image <#1f> <F3>An <F6>image<F3> object.
  665.  
  666. <syntax0>
  667.  
  668. image<#1e>x<#1e>hot<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>x<#1e>hot", Sort String = "image<#1e>x<#1e>hot">
  669.  
  670. <return>
  671.  
  672. <Tab><F3>Returns: <F2><HR>
  673.   x<#1e>position<F3> <#1f> Type <F0>card16<F3> or <F0>null<F3>.
  674.  
  675. <para>
  676.  
  677. Returns and (with <F6>setf<F0>) changes the x position of the hot 
  678. spot for an image<SP>used as a cursor glyph. The hot spot position 
  679. is specified relative to the<SP>upper<#1e>left origin of the <F2>image<F0>.
  680.  
  681. <arg>
  682.  
  683. image <#1f> <F3>An <F6>image<F3> object.
  684.  
  685. <syntax0>
  686.  
  687. image<#1e>y<#1e>hot<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>y<#1e>hot", Sort String = "image<#1e>y<#1e>hot">
  688.  
  689. <return>
  690.  
  691. <Tab><F3>Returns: <F2><HR>
  692.  y<#1e>position<F3> <#1f> Type <F0>card16<F3> or <F0>null<F3>.<F2> 
  693.  
  694. <para>
  695.  
  696. Returns and (with <F6>setf<F0>) changes the y position of the hot 
  697. spot for an image<SP>used as a cursor glyph. The hot spot position 
  698. is specified relative to the<SP>upper<#1e>left origin of the <F2>image<F0>.
  699.  
  700. <arg>
  701.  
  702. image <#1f> <F3>An <F6>image<F3> object.
  703.  
  704. <p2rule>
  705.  
  706. <|,"7<#1e>83">
  707. <Frame,
  708.     Name =            p2rule,
  709.     Placement =        At Anchor,
  710.     Width =            4.75 inches,
  711.     Height =        0.15 inches,
  712.     Vertical Alignment =    0.007 inches,
  713.     Shared Contents =    yes>
  714.  
  715. <p2stacked,
  716.     Font =            F3>
  717.  
  718. <Tab><F6>XY<#1e>Format<Tab>7.2.2<F0><#04>The <F6>image<#1e>xy<F0> 
  719. subtype represents an image as a sequence of bitmaps,
  720.  
  721. <p2para,
  722.     Alignment =        Both,
  723.     Allow Page Break Within = yes,
  724.     Allow Page Break After = yes,
  725.     TOC Doc Name =        >
  726.  
  727. <Tab><F6>Images<Tab><F0>one for<SP>each plane of the image, in most<#1e>signi
  728. ficant to least<#1e>significant bit order.<SP>The following paragraphs 
  729. describe the additional CLX functions that can be used to<SP>access <F6>image<#1e>
  730. xy<F0> objects.
  731.  
  732. <syntax0>
  733.  
  734. image<#1e>xy<#1e>bitmap<#1e>list<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>xy<#1e>bitmap<#1e>list", Sort String = "image<#1e>xy<#1e>bitmap<#1e>list">
  735.  
  736. <return>
  737.  
  738. <Tab><F3>Returns: <F2><HR>
  739.   bitmaps<F3> <#1f> Type <F0>list<F3> of <F0>bitmap<F3>.
  740.  
  741. <para>
  742.  
  743. Returns and (with <F6>setf<F0>) changes the list of bitmap planes 
  744. for the <F2>image<F0>.
  745.  
  746. <arg>
  747.  
  748. image <#1f> <F3>An <F6>image<#1e>xy<F3> object.
  749.  
  750. <p2rule>
  751.  
  752. <Frame,
  753.     Name =            p2rule,
  754.     Placement =        At Anchor,
  755.     Width =            4.75 inches,
  756.     Height =        0.15 inches,
  757.     Vertical Alignment =    0.007 inches,
  758.     Shared Contents =    yes>
  759.  
  760. <p2stacked,
  761.     Font =            F3>
  762.  
  763. <Tab><F6>Z<#1e>Format<Tab>7.2.3<F0><#04>The <F6>image<#1e>z<F0> 
  764. subtype represents an image as a two<#1e>dimensional array
  765.  
  766. <p2para,
  767.     Alignment =        Both,
  768.     Allow Page Break Within = yes,
  769.     Allow Page Break After = yes,
  770.     TOC Doc Name =        >
  771.  
  772. <Tab><F6>Images<Tab><F0>of<SP>pixels, in scanline order. The following 
  773. paragraphs describe the additional CLX<SP>functions that can be used 
  774. to access <F6>image<#1e>z<F0> objects.<SP>
  775.  
  776. <syntax0>
  777.  
  778. image<#1e>z<#1e>bits<#1e>per<#1e>pixel<F3> <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>z<#1e>bits<#1e>per<#1e>pixel", Sort String = "image<#1e>z<#1e>bits<#1e>per<#1e>pixel">
  779.  
  780. <return>
  781.  
  782. <Tab><F3>Returns: <F2><HR>
  783.   pixel<#1e>data<#1e>size<F3> <#1f> One of 1, 4, 8, 16, 24, or 32.
  784.  
  785. <para>
  786.  
  787. Returns and (with <F6>setf<F0>) changes the number of bits per data 
  788. unit used to<SP>contain a pixel value for the <F2>image<F0>. Depending 
  789. on the storage format for<SP>image data, this value can be larger 
  790. than the actual <F2>image<F0> depth.
  791.  
  792. <arg>
  793.  
  794. image <#1f> <F3>An <F6>image<#1e>z<F3> object.
  795.  
  796. <syntax0>
  797.  
  798. image<#1e>z<#1e>pixarray <F2>image<F0><Tab><F3>Function<Index, Doc = operations, "xlib:image<#1e>z<#1e>pixarray", Sort String = "image<#1e>z<#1e>pixarray">
  799.  
  800. <return>
  801.  
  802. <Tab><F3>Returns: <F2><HR>
  803.   pixarray<F3> <#1f> Type <F0>pixarray<F3>.
  804.  
  805. <para>
  806.  
  807. Returns and (with <F6>setf<F0>) changes the two<#1e>dimensional 
  808. array of pixel data for<SP>the <F2>image<F0>.
  809.  
  810. <arg>
  811.  
  812. image <#1f> <F3>An <F6>image<#1e>z<F3> object.
  813.  
  814. <p1rule>
  815.  
  816. <Frame,
  817.     Name =            "At Anchor",
  818.     Placement =        At Anchor,
  819.     Width =            6.35 inches,
  820.     Height =        0.153 inches,
  821.     Vertical Alignment =    0.007 inches,
  822.     Diagram =
  823. V4,
  824. (g9,1,0
  825.  (v4,1,0,0.006667,0.066723,6.333333,0.066611,17,2,0)
  826.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,0,1,1,0.066667,0.066667,6,6,0,0.066
  827.   667,6))>
  828.  
  829. <p1para,
  830.     Alignment =        Both,
  831.     Allow Page Break After = yes>
  832.  
  833. <F7>Image Functions<Tab><F6>7.3<F0><#04>The following paragraphs 
  834. describe the CLX functions used to:
  835.  
  836. <bullet>
  837.  
  838. <F8>w<Tab><F0>Create an <F6>image<F0> object.
  839.  
  840. <F8>w<Tab><F0>Copy an image or a subimage.
  841.  
  842. <F8>w<Tab><F0>Read an image from a <F6>drawable<F0>.
  843.  
  844. <F8>w<Tab><F0>Display an image to a <F6>drawable<F0>.
  845.  
  846. <syntax0>
  847.  
  848. create<#1e>image<F3> &key <F0>:bit<#1e>lsb<#1e>first<#1e>p :bits<#1e>per<#1e>
  849. pixel :blue<#1e>mask <Tab><F3>Function<Index, Doc = operations, "xlib:create<#1e>image", Sort String = "create<#1e>image", To Next><HR>
  850. <F0>:byte<#1e>lsb<#1e>first<#1e>p :bytes<#1e>per<#1e>line :data :depth 
  851. :format <HR>
  852. :green<#1e>mask :height :name :plist :red<#1e>mask :width <HR>
  853. :x<#1e>hot :y<#1e>hot   
  854.  
  855. <return>
  856.  
  857. <Tab><F3>Returns:<HR>
  858.  <F2>image<F3> <#1f> Type <F0>image<F3>.
  859.  
  860. <para>
  861.  
  862. Creates an <F6>image<F0> object from the given <F6>:data<F0> and 
  863. returns either an <F6>image<F0>,<SP><F6>image<#1e>xy<F0>, or an <F6>image<#1e>
  864. z<F0>, depending on the type of image <F6>:data<F0>. If the <F6>:data<F0><SP>
  865. is a list, it is assumed to be a <F6>list<F0> of <F6>bitmaps<F0> 
  866. and an <F6>image<#1e>xy<F0> is<SP>created. If the <F6>:data<F0> 
  867. is a <F6>pixarray<F0>, an <F6>image<#1e>z<F0> is created.<SP>Otherwise, 
  868. the <F6>:data<F0> must be an array of bytes (<F6>card8<F0>), in 
  869. which case a<SP>basic <F6>image<F0> object is created.
  870.  
  871. <|,"7<#1e>84">If the <F6>:data<F0> is a list, each element must be a bitmap 
  872. of equal size.<SP><F6>:width<F0> and <F6>:height<F0> default to 
  873. the bitmap width <#1f> <SP>(<F6>array<#1e>dimension<F0> <F6>bitmap<F0><SP>1
  874. ) <#1f> and the bitmap height <#1f> (<F6>array<#1e>dimension<F0> <F6>bitmap
  875. <F0> 0) <#1f> respectively. <F6>:depth<F0> defaults to the number 
  876. of bitmaps.
  877.  
  878. If the <F6>:data<F0> is a <F6>pixarray<F0>, <F6>:width<F0> and <F6>:heig
  879. ht<F0> default to the <F6>pixarray<F0><FJ>
  880. width <#1f> (<F6>array<#1e>dimension pixarray<F0> 1), and the pixarray 
  881. height <#1f><FJ>
  882. (<F6>array<#1e>dimension pixarray<F0> 0), respectively. <F6>:depth<F0> 
  883. defaults to (<F6>pixarray<#1e>depth :data<F0>). The <F6>:bits<#1e>per<#1e>pi
  884. xel<F0> is rounded to a valid size, if<SP>necessary. By default, 
  885. the <F6>:bits<#1e>per<#1e>pixel<F0> is equal to the <F6>:depth<F0>.
  886.  
  887. If the <F6>:data<F0> is an array of <F6>card8<F0>, the <F6>:width<F0> 
  888. and <F6>:height<F0> are required<SP>to interpret the image data 
  889. correctly. The <F6>:bits<#1e>per<#1e>pixel<F0> defaults to the<SP><F6>:depth
  890. <F0>, and the <F6>:depth<F0> defaults to 1. <F6>:bytes<#1e>per<#1e>line
  891. <F0> defaults to: 
  892.  
  893. (<F6>floor<F0><SP>(<F6>length :data<F0>) (* <F6>:bits<#1e>per<#1e>pixel 
  894. :height<F0>))
  895.  
  896. The <F6>:format<F0> defines the storage<SP>format of image data 
  897. bytes and can be one of the following values:
  898.  
  899. <bullet>
  900.  
  901. <F8>w<Tab><F6>:xy<#1e>pixmap<F0> <#1f> The <F6>:data<F0> is organized 
  902. as a set of bitmaps representing<SP>image bit planes, appearing in 
  903. most<#1e>significant to<SP> least<#1e>significant bit order.
  904.  
  905. <F8>w<Tab><F6>:z<#1e>pixmap<F0> <#1f> The <F6>:data<F0> is organized 
  906. as a set of pixel values in<SP>scanline order.
  907.  
  908. <F8>w<Tab><F6>:bitmap<F0> <#1f> Similar to <F6>:xy<#1e>pixmap<F0>, 
  909. except that the <F6>:depth<F0> must be 1,<SP> and 1 and 0 bits represent 
  910. the foreground and background pixels, respectively.
  911.  
  912. <para>
  913.  
  914. By default, the <F6>:format<F0> is <F6>:bitmap<F0> if <F6>:depth<F0> 
  915. is 1; otherwise, <F6>:z<#1e>pixmap<F0>.
  916.  
  917. <arg>
  918.  
  919. <F6>:bit<#1e>lsb<#1e>first<#1e>p<F3> <#1f> For a returned image, 
  920. true if the order of bits in each <F6>:data<F3> byte is least<#1e>significant 
  921. bit first.
  922.  
  923. <F6>:bits<#1e>per<#1e>pixel <F3><#1f> One of 1, 4, 8, 16, 24, or 
  924. 32.
  925.  
  926. <F6>:blue<#1e>mask<F3> <#1f> For <F6>:true<#1e>color<F3> or <F6>:direct<#1e>
  927. color<F3> images, a pixel mask.
  928.  
  929. <F6>:byte<#1e>lsb<#1e>first<#1e>p<F3> <#1f> For a returned <F0>image<F3>, 
  930. true if the <F6>:data<F3> byte order is<SP>least<#1e>significant 
  931. byte first.
  932.  
  933. <F6>:bytes<#1e>per<#1e>line<F3> <#1f> For a returned <F0>image<F3>, 
  934. the number of <F6>:data<F3> bytes per<SP>scanline.
  935.  
  936. <F6>:data<F3> <#1f> Either a <F6>list<F3> of <F6>bitmaps<F3>, 
  937. a <F6>pixarray<F3>, or an array of<SP><F6>card8<F3> bytes.
  938.  
  939. <F6>:depth<F3> <#1f> The number of bits per displayed pixel.
  940.  
  941. <F6>:format<F3> <#1f> One of <F6>:bitmap<F3>, <F6>:xy<#1e>format<F3>, 
  942. or <F6>:z<#1e>format<F3>.
  943.  
  944. <F6>:green<#1e>mask<F3> <#1f> For <F6>:true<#1e>color<F3> or <F6>:direct<#1e>
  945. color<F3> images, a pixel mask.
  946.  
  947. <F6>:height<F3> <#1f> A <F6>card16<F3> for the image height in 
  948. pixels.
  949.  
  950. <F6>:name<F3> <#1f> An optional <F6>stringable<F3> for the image 
  951. name.
  952.  
  953. <F6>:plist <F3><#1f> An optional image property list.
  954.  
  955. <F6>:red<#1e>mask<F3> <#1f> For <F6>:true<#1e>color<F3> or <F6>:direct<#1e>
  956. color<F3> images, a pixel mask.
  957.  
  958. <F6>:width<F3> <#1f> A <F6>card16<F3> for the image width in pixels.
  959.  
  960. <F6>:x<#1e>hot<F3> <#1f> For a <F6>cursor <F3>image, the x position 
  961. of the hot spot.
  962.  
  963. <F6>:y<#1e>hot<F3> <#1f> For a cursor image, the y position of the 
  964. hot spot.
  965.  
  966. <syntax0>
  967.  
  968. <|,"7<#1e>85">copy<#1e>image<F3> <F2>image <F3>&key (<F0>:x<F3> 0) (<F0>:y<F3> 
  969. 0) <F0>:width :height :result<#1e>type<F3> <F0><Tab><F3>Function<Index, Doc = operations, "xlib:copy<#1e>image", Sort String = "copy<#1e>image">
  970.  
  971. <return>
  972.  
  973. <Tab><F3>Returns:<HR>
  974.  <F2>new<#1e>image<F3> <#1f> Type <F0>image<F3>. 
  975.  
  976. <para>
  977.  
  978. Returns a new image, of the given <F6>:result<#1e>type<F0>, containing 
  979. a copy of the<SP>portion of the <F2>image<F0> defined by <F6>:x<F0>, <F6>:
  980. y<F0>, <F6>:width<F0>, and <F6>:height<F0>. By default,<SP><F6>:width
  981. <F0> is:
  982.  
  983. (- (<F6>image<#1e>width<F0> <F2>image<F0>) <F6>:x<F0>)
  984.  
  985. and <F6>:height<F0> is:
  986.  
  987. (- (<F6>image<#1e>height<F0> <F2>image<F0>)<SP><F6>:y<F0>)
  988.  
  989. If necessary, the new image is converted to the <F6>:result<#1e>type<F0>, 
  990. that can be one of the following values:
  991.  
  992. <bullet>
  993.  
  994. <F8>w<Tab><F6>'image<#1e>x<F0> <#1f> A basic <F6>image<F0> object 
  995. is returned.
  996.  
  997. <F8>w<Tab><F6>'image<#1e>xy<F0> <#1f> An <F6>image<#1e>xy<F0> 
  998. is returned.
  999.  
  1000. <F8>w<Tab><F6>'image<#1e>z<F0> <#1f> An <F6>image<#1e>z<F0> is 
  1001. returned.
  1002.  
  1003. <arg>
  1004.  
  1005. image<F3> <#1f> An <F6>image<F3> object.
  1006.  
  1007. <F6>:x<F3>, <F6>:y<F3> <#1f> <F6>card16<F3> values defining 
  1008. the position of the upper<#1e>left corner of the subimage copied.
  1009.  
  1010. <F6>:width<F3>, <F6>:height<F3> <#1f> <F6>card16<F3> values 
  1011. defining the size of subimage copied.
  1012.  
  1013. <F6>:result<#1e>type<F3> <#1f> One of <F6>'image<#1e>x<F3>, <F6>'image<#1e>
  1014. xy<F3>, or <F6>'image<#1e>z<F3>.
  1015.  
  1016. <syntax0>
  1017.  
  1018. get<#1e>image<F3> <F2>drawable <F3>&key <F0>:x<F3> <F0>:y<F3> <F0>:widt
  1019. h<F3> <F0>:height<F3> <F0>:plane<#1e>mask <Tab><F3>Function<Index, Doc = operations, "xlib:get<#1e>image", Sort String = "get<#1e>image", To Next><HR>
  1020. (<F0>:format :z<#1e>format<F3>)<F0> :result<#1e>type
  1021.  
  1022. <return>
  1023.  
  1024. <Tab><F3>Returns: <HR>
  1025.  <F2>image<F3> <#1f> Type <F0>image<F3>.
  1026.  
  1027. <para>
  1028.  
  1029. Returns an <F2>image<F0> containing pixel values from the region 
  1030. of the <F2>drawable<F0> given<SP>by <F6>:x<F0>, <F6>:y<F0>, <F6>:width
  1031. <F0>, and <F6>:height<F0>. The bits for all planes selected by 
  1032. 1 bits<SP>in the <F6>:plane<#1e>mask<F0> are returned as zero; the 
  1033. default <F6>:plane<#1e>mask<F0> is all 1<SP>bits. The <F6>:format<F0> 
  1034. of the returned pixel values may be either <F6>:xy<#1e>format<F0> 
  1035. or<SP><F6>:z<#1e>format<F0>.
  1036.  
  1037. <para,
  1038.     New Page =        yes>
  1039.  
  1040. <|,"7<#1e>86">The <F6>:result<#1e>type<F0> defines the type of image object 
  1041. returned:
  1042.  
  1043. <bullet>
  1044.  
  1045. <F8>w<Tab><F6>'image<#1e>x<F0> <#1f> A basic <F6>image<F0> object 
  1046. is returned.
  1047.  
  1048. <F8>w<Tab><F6>'image<#1e>xy<F0> <#1f> An <F6>image<#1e>xy<F0> 
  1049. is returned.
  1050.  
  1051. <F8>w<Tab><F6>'image<#1e>z<F0> <#1f> An <F6>image<#1e>z<F0> is 
  1052. returned.
  1053.  
  1054. <para>
  1055.  
  1056. By default, <F6>:result<#1e>type<F0> is <F6>'image<#1e>z<F0> if <F6>:forma
  1057. t<F0> is <F6>:z<#1e>format<F0> and <F6>'image<#1e>xy<F0> if <F6>:format
  1058. <F0> is <F6>:xy<#1e>format<F0>.
  1059.  
  1060. <arg>
  1061.  
  1062. drawable<F3> <#1f> A <F6>drawable<F3>.
  1063.  
  1064. <F6>:x<F3>, <F6>:y<F3> <#1f> <F6>card16<F3> values defining 
  1065. the upper<#1e>left <F6>drawable<F3> pixel returned. These arguments 
  1066. are required.
  1067.  
  1068. <F6>:width<F3>, <F6>:height<F3> <#1f> <F6>card16<F3> values 
  1069. defining the size of the <F0>image<F3> returned. These arguments 
  1070. are required.
  1071.  
  1072. <F6>:plane<#1e>mask<F3> <#1f> A pixel mask.
  1073.  
  1074. <F6>:format<F3> <#1f> Either <F6>:xy<#1e>pixmap<F3> or <F6>:z<#1e>pixmap
  1075. <F3>.
  1076.  
  1077. <F6>:result<#1e>type<F3> <#1f> One of <F6>'image<#1e>x<F3>, <F6>'image<#1e>
  1078. xy<F3>, or <F6>'image<#1e>z<F3>.
  1079.  
  1080. <syntax>
  1081.  
  1082. put<#1e>image<F3> <F2>drawable gcontext image <F3>&key (<F0>:src<#1e>x
  1083. <F3> 0) (<F0>:src<#1e>y<F3> 0) <F0>:x<F3> <F0>:y<F3> <F0><Tab><F3>Func
  1084. tion<Index, Doc = operations, "xlib:put<#1e>image", Sort String = "put<#1e>image"><HR>
  1085. <F0>:width :height :bitmap<#1e>p
  1086.  
  1087. <para>
  1088.  
  1089. Displays a region of the <F2>image<F0> defined by <F6>:src<#1e>x<F0>, 
  1090. <F6>:src<#1e>y<F0>, <F6>:width<F0>, and<SP><F6>:height<F0> on 
  1091. the destination d<F2>rawable<F0>, with the upper<#1e>left pixel 
  1092. of the <F2>image<F0><SP>region displayed at the <F2>drawable<F0> 
  1093. position given by <F6>:x<F0> and <F6>:y<F0>. By default,<SP><F6>:width
  1094. <F0> is: 
  1095.  
  1096. (- (<F6>image<#1e>width<F0> <F2>image<F0>) <F6>:src<#1e>x<F0>)
  1097.  
  1098. and <F6>:height<F0> is: 
  1099.  
  1100. (- (<F6>image<#1e>height<F0><SP><F2>image<F0>) <F6>:src<#1e>y<F0>)
  1101.  
  1102. The following attributes of the <F2>gcontext<F0> are used to display 
  1103. the <F6>image<F0>:<SP>clip<#1e>mask, clip<#1e>x, clip<#1e>y, function, 
  1104. plane<#1e>mask, and subwindow<#1e>mode.
  1105.  
  1106. The <F6>:bitmap<#1e>p<F0> argument applies only to images of depth 
  1107. 1. In this case, if<SP><F6>:bitmap<#1e>p<F0> is true or if the <F2>image
  1108. <F0> is a basic <F6>image<F0> object created with<SP><F6>:format 
  1109. :bitmap<F0>, the <F2>image<F0> is combined with the foreground 
  1110. and<SP>background pixels of the <F6>gcontext<F0>. 1 bits of the <F2>image
  1111. <F0> are displayed in the<SP>foreground pixel and 0 bits are displayed 
  1112. in the background pixel.
  1113.  
  1114. <arg>
  1115.  
  1116. drawable<F3> <#1f> The destination <F6>drawable<F3>.
  1117.  
  1118. gcontext<F3> <#1f> The graphics context used to display the <F0>image<F3>.
  1119.  
  1120. image<F3> <#1f> An <F6>image<F3> object.
  1121.  
  1122. <F6>:src<#1e>x<F3>, <F6>:src<#1e>y<F3> <#1f> <F6>card16<F3> 
  1123. values defining the upper<#1e>left position of the <F0>image<F3> 
  1124. region to display.
  1125.  
  1126. <F6>:x<F3>, <F6>:y<F3> <#1f> The position in the <F0>drawable<F3> 
  1127. where the <F0>image<F3> region is displayed. These arguments are 
  1128. required.
  1129.  
  1130. <F6>:width<F3>, <F6>:height <F3><#1f> <F6>card16<F3> values 
  1131. defining the size of the <F0>image<F3> region displayed.
  1132.  
  1133. <F6>:bitmap<#1e>p<F3> <#1f> If <F0>image<F3> is depth 1, then 
  1134. if true, foreground and background pixels are used to display 1 and 
  1135. 0 bits of the <F0>image<F3>.
  1136.  
  1137. <p1rule,
  1138.     New Page =        yes>
  1139.  
  1140. <|,"7<#1e>87">
  1141. <Frame,
  1142.     Name =            "At Anchor",
  1143.     Placement =        At Anchor,
  1144.     Width =            6.35 inches,
  1145.     Height =        0.153 inches,
  1146.     Vertical Alignment =    0.007 inches,
  1147.     Diagram =
  1148. V4,
  1149. (g9,1,0
  1150.  (v4,1,0,0.006667,0.066723,6.333333,0.066611,17,2,0)
  1151.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,0,1,1,0.066667,0.066667,6,6,0,0.066
  1152.   667,6))>
  1153.  
  1154. <p1para,
  1155.     Alignment =        Both,
  1156.     Allow Page Break After = yes>
  1157.  
  1158. <F7>Image Files<Tab><F6>7.4<F0><#04>CLX provides functions that 
  1159. allow images to be written to a file in a standard X format. The following 
  1160. paragraphs describe the CLX functions used to:
  1161.  
  1162. <bullet>
  1163.  
  1164. <F8>w<Tab><F0>Read an image from a file.
  1165.  
  1166. <F8>w<Tab><F0>Write an image to a file.
  1167.  
  1168. <syntax0>
  1169.  
  1170. read<#1e>bitmap<#1e>file<F3> <F2>pathname<F3> <F0><Tab><F3>Function<Index, Doc = operations, "xlib:read<#1e>bitmap<#1e>file", Sort String = "read<#1e>bitmap<#1e>file">
  1171.  
  1172. <return>
  1173.  
  1174. <Tab><F3>Returns:<HR>
  1175.  <F2>image<F3> <#1f> Type <F0>image<F3>. 
  1176.  
  1177. <para>
  1178.  
  1179. Reads an image file in standard X format and returns an <F6>image<F0> 
  1180. object. The returned <F2>image<F0> can have depth greater than one.
  1181.  
  1182. <arg>
  1183.  
  1184. pathname<F3> <#1f> An image file pathname.<F0> 
  1185.  
  1186. <syntax>
  1187.  
  1188. write<#1e>bitmap<#1e>file<F3> <F2>pathname image<F3> &optional <F2>name
  1189. <F0><Tab><F3>Function<Index, Doc = operations, "xlib:write<#1e>bitmap<#1e>file", Sort String = "write<#1e>bitmap<#1e>file">
  1190.  
  1191. <para>
  1192.  
  1193. Writes the <F2>image<F0> to an image file in standard X format. 
  1194. The <F2>image<F0> can have depth greater than one. The <F2>name<F0> 
  1195. is an image identifier written to the file; the default <F2>name<F0> 
  1196. is (<F6>or<F0> (<F6>image<#1e>name<F0> <F2>image<F0>)<F6> 'image<F0>).
  1197.  
  1198. <arg>
  1199.  
  1200. pathname<F3> <#1f> An image file pathname.
  1201.  
  1202. image<F3> <#1f> An <F6>image<F3> object.
  1203.  
  1204. name<F3> <#1f> A <F6>stringable<F3> image name.
  1205.  
  1206. <p1rule>
  1207.  
  1208. <Frame,
  1209.     Name =            "At Anchor",
  1210.     Placement =        At Anchor,
  1211.     Width =            6.35 inches,
  1212.     Height =        0.153 inches,
  1213.     Vertical Alignment =    0.007 inches,
  1214.     Diagram =
  1215. V4,
  1216. (g9,1,0
  1217.  (v4,1,0,0.006667,0.066723,6.333333,0.066611,17,2,0)
  1218.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,0,1,1,0.066667,0.066667,6,6,0,0.066
  1219.   667,6))>
  1220.  
  1221. <p1stacked,
  1222.     Left Tab =        -1.70/0 inches>
  1223.  
  1224. <F7>Direct Image <Tab><F6>7.5<F0><#04>For cases where the <F6>image<F0> 
  1225. representation is not needed, CLX provides
  1226.  
  1227. <p1para,
  1228.     Alignment =        Both,
  1229.     Allow Page Break After = yes>
  1230.  
  1231. <F7>Transfer<Tab><F0>functions to read and display image data directly.
  1232.  
  1233. <syntax>
  1234.  
  1235. get<#1e>raw<#1e>image<F3> <F2>drawable <F3>&key <F0>:data<F3> 
  1236. (<F0>:start<F3> 0)<F0> :x :y :width :height<Tab><F3>Function<Index, Doc = operations, "xlib:get<#1e>raw<#1e>image", Sort String = "get<#1e>raw<#1e>image", To Next><HR>
  1237. <F0>:plane<#1e>mask <F3>(<F0>:format<F3> <F0>:z<#1e>format<F3>) 
  1238. (<F0>:result<#1e>type<F3> <F0>'<F3>(<F0>vector<F3> <F0>card8<F3>))
  1239.  
  1240. <return,
  1241.     Left Tab =        -0.90/0/0.10/7.50 inches>
  1242.  
  1243. <Tab><F3>Returns:<HR>
  1244. <Tab><F2>data<F3> <#1f> Type <F0>sequence<F3> or <F0>card8<F3>.<HR>
  1245. <Tab><F2>depth<F3> <#1f> Type <F0>card8<F3>.<HR>
  1246. <Tab><F2>visual<F3> <#1f> Type <F0>card29<F3>.
  1247.  
  1248. <para>
  1249.  
  1250. Returns a sequence of image data from the region of the <F2>drawable<F0> 
  1251. given by<SP><F6>:x<F0>, <F6>:y<F0>, <F6>:width<F0>, and <F6>:height
  1252. <F0>. If <F6>:data<F0> is given, it is modified<SP>beginning with 
  1253. the element at the <F6>:start<F0> index and returned. The <F2>depth<F0> 
  1254. and<SP><F2>visua<F0>l type ID of the <F2>drawable<F0> are also 
  1255. returned.
  1256.  
  1257. The bits for all planes selected by 1 bits in the <F6>:plane<#1e>mask<F0> 
  1258. are returned<SP>as zero; the default <F6>:plane<#1e>mask<F0> is 
  1259. all 1 bits. The <F6>:format<F0> of the returned<SP>pixel values 
  1260. may be either <F6>:xy<#1e>format<F0> or <F6>:z<#1e>format<F0>. 
  1261. The <F6>:result<#1e>type<F0> defines the type of image data returned.
  1262.  
  1263. The calling program is responsible for handling the byte<#1e>order 
  1264. and bit<#1e>order<SP>returned by the server for the <F2>drawable<F0>'s 
  1265. display (see <F6>display<#1e>byte<#1e>order<F0><SP>and <F6>display<#1e>image
  1266. <#1e>lsb<#1e>first<#1e>p<F0>).
  1267.  
  1268. <arg>
  1269.  
  1270. drawable<F3> <#1f> A <F6>drawable<F3>.
  1271.  
  1272. <F6>:data<F3> <#1f> An optional <F6>sequence<F3> of <F6>card8<F3>.
  1273.  
  1274. <F6>:start <F3><#1f> The index of the first <F6>:data<F3> element 
  1275. modified.<F0> 
  1276.  
  1277. <F6>:x<F3>, <F6>:y<F3> <#1f> <F6>card16<F3> values defining 
  1278. the size of the <F6>image<F3> returned. These arguments are required.
  1279.  
  1280. <|,"7<#1e>88"><F6>:width<F3>, <F6>:height<F3> <#1f> <F6>card16<F3> values 
  1281. defining the size of the image returned.These arguments are required. 
  1282.  
  1283. <F6>:plane<#1e>mask<F3> <#1f> A pixel mask.
  1284.  
  1285. <F6>:format<F3> <#1f> Either <F6>:xy-pixmap<F3> or <F6>:z-pixmap<F3>. 
  1286. This argument is required.
  1287.  
  1288. <F6>:result<#1e>type<F3> <#1f> The type of image data sequence to 
  1289. return.
  1290.  
  1291. <syntax>
  1292.  
  1293. put<#1e>raw<#1e>image<F3> <F2>drawable gcontext data <F3>&key (<F0>:start
  1294. <F3> 0) <F0>:depth :x :y <Tab><F3>Function<Index, Doc = operations, "xlib:put<#1e>raw<#1e>image", Sort String = "put<#1e>raw<#1e>image"><HR>
  1295. <F0>:width :height<F3> (<F0>:left<#1e>pad<F3> 0) <F0>:format
  1296.  
  1297. <para>
  1298.  
  1299. Displays a region of the image data defined by <F6>:start<F0>, <F6>:left<#1e>
  1300. pad<F0>, <F6>:width,<F0><SP>and <F6>:height<F0> on the destination <F2>dr
  1301. awable<F0>, with the upper<#1e>left pixel of the<SP>image region 
  1302. displayed at the <F2>drawable<F0> position given by <F6>:x<F0> 
  1303. and <F6>:y<F0>.  
  1304.  
  1305. The <F6>:format<F0> can be either <F6>:xy<#1e>pixmap<F0>, <F6>:z<#1e>pixma
  1306. p<F0>, or <F6>:bitmap<F0>. If <F6>:xy<#1e>pixmap<F0><SP>or <F6>:z<#1e>pix
  1307. map<F0> formats are used, <F6>:depth<F0> must match the depth of 
  1308. the<SP>destination <F2>drawable<F0>. For <F6>:xy<#1e>pixmap<F0>, 
  1309. the data must be in XY format. For<SP><F6>:z<#1e>pixmap<F0>, the 
  1310. data must be in Z format for the given <F6>:depth<F0>.
  1311.  
  1312. If the <F6>:format<F0> is <F6>:bitmap<F0>, the <F6>:depth<F0> 
  1313. must be 1. In this case, the<SP>image is combined with the foreground 
  1314. and background pixels of the <F2>gcontext<F0>. 1 bits of the image 
  1315. are displayed in the foreground pixel and 0 bits are<SP>displayed 
  1316. in the background pixel.
  1317.  
  1318. The <F6>:left<#1e>pad<F0> must be zero for <F6>:z<#1e>pixmap<F0> 
  1319. format. For <F6>:bitmap<F0> and <F6>:xy<#1e>pixmap<F0><SP>formats, 
  1320. the <F6>:left<#1e>pad<F0> must be less than the bitmap<#1e>scanline<#1e>pad 
  1321. for the<SP><F2>drawable<F0>'s display (see <F6>display<#1e>bitmap<#1e>format
  1322. <F0>). The first <F6>:left<#1e>pad<F0> bits in<SP>every scanline 
  1323. are to be ignored by the server; the actual image begins that<SP>many 
  1324. bits into the data.<SP>
  1325.  
  1326. The following attributes of the <F2>gcontext<F0> are used to display 
  1327. the <F6>image<F0>:<SP>clip<#1e>mask, clip<#1e>x, clip<#1e>y, function, 
  1328. plane<#1e>mask, and subwindow<#1e>mode.
  1329.  
  1330. The calling program is responsible for handling the byte<#1e>order 
  1331. and bit<#1e>order<SP>required by the server for the <F2>drawable<F0>'s 
  1332. display (see <F6>display<#1e>byte<#1e>order<F0><SP>and <F6>display<#1e>image
  1333. <#1e>lsb<#1e>first<#1e>p<F0>).
  1334.  
  1335. <arg>
  1336.  
  1337. drawable<F3> <#1f> The destination <F6>drawable<F3>.
  1338.  
  1339. gcontext<F3> <#1f> The graphics context used to display the image.
  1340.  
  1341. data<F3> <#1f> A sequence of integers.
  1342.  
  1343. <F6>:start<F3> <#1f> The index of the first element of <F0>data<F3> 
  1344. displayed.
  1345.  
  1346. <F6>:depth <F3><#1f> The number of bits per pixel displayed. This 
  1347. argument is required.
  1348.  
  1349. <F6>:x<F3>, <F6>:y<F3> <#1f> The position in the <F0>drawable<F3> 
  1350. where the image region is displayed. These arguments are required.
  1351.  
  1352. <F6>:width<F3>, <F6>:height<F3> <#1f> <F6>card16<F3> values 
  1353. defining the size of the image region displayed. These arguments are 
  1354. required.
  1355.  
  1356. <F6>:left<#1e>pad<F3> <#1f> A <F6>card8<F3> specifying the number 
  1357. of leading bits to discard for each image scanline.
  1358.  
  1359. <F6>:format<F3> <#1f> One of <F6>:bitmap<F3>, <F6>:xy<#1e>pixmap<F3>, 
  1360. or <F6>:z<#1e>pixmap<F3>.
  1361.  
  1362.