Restore figures (converted from fig to SVG/PDF using fig2dev)

This also restores figure references and captions.  The latter vanished
in the pandoc conversion.  Figure and table references are now numeric.
draft-2
Olaf Meeuwissen 2019-10-21 17:50:35 +09:00
rodzic d70a8380f0
commit 5837984c07
12 zmienionych plików z 576 dodań i 25 usunięć

Wyświetl plik

@ -46,6 +46,12 @@ templates_path = ['_templates']
primary_domain = 'c'
numfig = True
numfig_format = {
'figure': 'Figure %s',
'table': 'Table %s'
}
today_fmt = '%Y-%m-%d'
highlight_language = 'c'

BIN
figs/area.pdf 100644

Plik binarny nie jest wyświetlany.

66
figs/area.svg 100644
Wyświetl plik

@ -0,0 +1,66 @@
<?xml version="1.0" standalone="no"?>
<!-- Creator: fig2dev Version 3.2.6a -->
<!-- CreationDate: 2019-11-19 07:59:01 -->
<!-- Magnification: 1 -->
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="221pt" height="206pt"
viewBox="981 405 3681 3432">
<g fill="none">
<!-- Line -->
<rect x="1725" y="1725" width="1650" height="1050" fill="#e5e5e5"/>
<!-- Line -->
<defs>
<clipPath id="cp0">
<path clip-rule="evenodd" d="M 981,405 H 4662 V 3837 H 981 z
M 1230,3655 1200,3685 1170,3655 1193,3832 1207,3832z"/>
</clipPath>
</defs>
<polyline points=" 1200,525 1200,3825" clip-path="url(#cp0)"
stroke="#000000" stroke-width="8px"/>
<!-- Forward arrow to point 1200,3825 -->
<polygon points=" 1170,3655 1200,3805 1230,3655 1200,3685 1170,3655"
stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
<!-- Line -->
<defs>
<clipPath id="cp1">
<path clip-rule="evenodd" d="M 981,405 H 4662 V 3837 H 981 z
M 4480,645 4510,675 4480,705 4657,682 4657,668z"/>
</clipPath>
</defs>
<polyline points=" 1050,675 4650,675" clip-path="url(#cp1)"
stroke="#000000" stroke-width="8px"/>
<!-- Forward arrow to point 4650,675 -->
<polygon points=" 4480,705 4630,675 4480,645 4510,675 4480,705"
stroke="#000000" stroke-width="8px" stroke-miterlimit="8" fill="#000000"/>
<!-- Text -->
<text xml:space="preserve" x="2550" y="2302" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">scan area</text>
<!-- Text -->
<text xml:space="preserve" x="3375" y="3150" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">bottom-right</text>
<!-- Text -->
<text xml:space="preserve" x="1725" y="1500" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">top-left</text>
<!-- Text -->
<text xml:space="preserve" x="2700" y="1050" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">scan surface</text>
<!-- Text -->
<text xml:space="preserve" x="1050" y="3600" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">y</text>
<!-- Text -->
<text xml:space="preserve" x="4425" y="525" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">x</text>
<!-- Text -->
<text xml:space="preserve" x="1080" y="585" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">0</text>
<!-- Line -->
<polyline points=" 1725,1650 1725,1800"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<polyline points=" 1650,1725 1800,1725"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<polyline points=" 3375,2700 3375,2850"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<polyline points=" 3300,2775 3450,2775"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<rect x="1200" y="675" width="3075" height="2700"
stroke="#000000" stroke-width="15px"/>
</g>
</svg>

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 3.1 KiB

BIN
figs/flow.pdf 100644

Plik binarny nie jest wyświetlany.

71
figs/flow.svg 100644
Wyświetl plik

@ -0,0 +1,71 @@
<?xml version="1.0" standalone="no"?>
<!-- Creator: fig2dev Version 3.2.6a -->
<!-- CreationDate: 2019-11-19 07:59:01 -->
<!-- Magnification: 1 -->
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="602pt" height="542pt"
viewBox="2688 588 10024 9024">
<g fill="none">
<!-- Line -->
<rect x="2700" y="600" width="7500" height="9000" fill="#f2f2f2"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<rect x="3300" y="2400" width="6900" height="6525" fill="#e5e5e5"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<rect x="3900" y="2925" width="6300" height="1725" fill="#d8d8d8"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<rect x="3900" y="4800" width="6300" height="3450" fill="#d8d8d8"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<polyline points=" 10350,3000 10425,3075 10425,4500 10350,4575"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<polyline points=" 10350,4875 10425,4950 10425,8100 10350,8175"
stroke="#000000" stroke-width="8px"/>
<!-- Text -->
<text xml:space="preserve" x="10575" y="6600" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="216" text-anchor="start">image acquisition</text>
<!-- Text -->
<text xml:space="preserve" x="10575" y="3825" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="216" text-anchor="start">device setup</text>
<!-- Text -->
<text xml:space="preserve" x="4200" y="7515" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="216" text-anchor="start">- go back to</text>
<!-- Text -->
<text xml:space="preserve" x="5775" y="7515" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">sane_start()</text>
<!-- Text -->
<text xml:space="preserve" x="7275" y="7515" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="216" text-anchor="start">if more frames desired</text>
<!-- Text -->
<text xml:space="preserve" x="4200" y="3300" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="216" text-anchor="start">- use:</text>
<!-- Text -->
<text xml:space="preserve" x="4200" y="5100" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">- sane_start()</text>
<!-- Text -->
<text xml:space="preserve" x="4500" y="4500" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="216" text-anchor="start">repeatedly to configure device as desired</text>
<!-- Text -->
<text xml:space="preserve" x="5400" y="4080" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">sane_control_option()</text>
<!-- Text -->
<text xml:space="preserve" x="5400" y="3600" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">sane_get_option_descriptor()</text>
<!-- Text -->
<text xml:space="preserve" x="4200" y="5700" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="216" text-anchor="start">- use:</text>
<!-- Text -->
<text xml:space="preserve" x="4500" y="6900" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="216" text-anchor="start">repeatedly until read returns EOF</text>
<!-- Text -->
<text xml:space="preserve" x="5400" y="6000" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">sane_get_parameters()</text>
<!-- Text -->
<text xml:space="preserve" x="5400" y="6450" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">sane_read()</text>
<!-- Text -->
<text xml:space="preserve" x="4200" y="8100" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">- sane_cancel()</text>
<!-- Text -->
<text xml:space="preserve" x="3000" y="1200" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">- sane_init()</text>
<!-- Text -->
<text xml:space="preserve" x="3000" y="9300" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">- sane_exit()</text>
<!-- Text -->
<text xml:space="preserve" x="3600" y="1800" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="216" text-anchor="start">- pick desired device, possibly by using</text>
<!-- Text -->
<text xml:space="preserve" x="3600" y="2700" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">- sane_open()</text>
<!-- Text -->
<text xml:space="preserve" x="3600" y="8700" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">- sane_close()</text>
<!-- Text -->
<text xml:space="preserve" x="4800" y="2175" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="start">sane_get_devices()</text>
</g>
</svg>

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 5.1 KiB

BIN
figs/hierarchy.pdf 100644

Plik binarny nie jest wyświetlany.

122
figs/hierarchy.svg 100644
Wyświetl plik

@ -0,0 +1,122 @@
<?xml version="1.0" standalone="no"?>
<!-- Creator: fig2dev Version 3.2.6a -->
<!-- CreationDate: 2019-11-19 07:59:01 -->
<!-- Magnification: 1 -->
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="721pt" height="353pt"
viewBox="299 299 12002 5881">
<g fill="none">
<!-- Line -->
<rect x="300" y="300" width="5400" height="3525" fill="#e5e5e5"/>
<!-- Line -->
<rect x="7200" y="300" width="5100" height="5250" fill="#e5e5e5"/>
<!-- Line -->
<rect x="10650" y="4785" width="1500" height="600"
stroke="#000000" stroke-width="15px"/>
<!-- Line -->
<rect x="7350" y="4785" width="1500" height="600"
stroke="#000000" stroke-width="15px"/>
<!-- Line -->
<rect x="2250" y="1185" width="1500" height="600"
stroke="#000000" stroke-width="15px"/>
<!-- Line -->
<rect x="450" y="2985" width="1500" height="600"
stroke="#000000" stroke-width="15px"/>
<!-- Line -->
<rect x="2250" y="2985" width="1500" height="600"
stroke="#000000" stroke-width="15px"/>
<!-- Line -->
<rect x="4050" y="2985" width="1500" height="600"
stroke="#000000" stroke-width="15px"/>
<!-- Line -->
<rect x="8850" y="1185" width="1500" height="600"
stroke="#000000" stroke-width="15px"/>
<!-- Line -->
<polyline points=" 2700,1800 1200,3000"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<polyline points=" 3000,1800 3000,3000"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<polyline points=" 3300,1800 4800,3000"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<polyline points=" 9600,1800 9600,2100"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<polyline points=" 9450,2700 8100,4800"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<polyline points=" 11400,4200 11400,4800"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<polyline points=" 1200,3600 1200,4200"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<polyline points=" 3000,3600 3000,4125"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<polyline points=" 7875,5400 7350,5850"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<polyline points=" 8250,5400 8775,5850"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<polyline points=" 11475,5400 11475,5850"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<rect x="8850" y="2100" width="1500" height="600"
stroke="#000000" stroke-width="15px"/>
<!-- Line -->
<rect x="10650" y="3600" width="1500" height="600"
stroke="#000000" stroke-width="15px"/>
<!-- Line -->
<polyline points=" 9750,2700 11400,3600"
stroke="#000000" stroke-width="8px"/>
<!-- Spline -->
<path style="stroke:#000000;stroke-width:8" d="M 4800,3600
C4800,3600
4275,4500
5025,5475
6150,4575
6525,1350
9450,900
9600,1200
"/>
<!-- Text -->
<text xml:space="preserve" x="11399" y="5182" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="middle">qcam</text>
<!-- Text -->
<text xml:space="preserve" x="8099" y="5182" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="middle">hp</text>
<!-- Text -->
<text xml:space="preserve" x="1199" y="3382" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="middle">pnm</text>
<!-- Text -->
<text xml:space="preserve" x="2999" y="3382" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="middle">mustek</text>
<!-- Text -->
<text xml:space="preserve" x="1200" y="4425" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="168" text-anchor="middle">pnm files</text>
<!-- Text -->
<text xml:space="preserve" x="3000" y="4380" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="168" text-anchor="middle">scanner</text>
<!-- Text -->
<text xml:space="preserve" x="7350" y="6165" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="168" text-anchor="middle">scanner 1</text>
<!-- Text -->
<text xml:space="preserve" x="8925" y="6165" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="168" text-anchor="middle">scanner 2</text>
<!-- Text -->
<text xml:space="preserve" x="11475" y="6135" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="168" text-anchor="middle">video camera</text>
<!-- Text -->
<text xml:space="preserve" x="3000" y="600" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="168" text-anchor="middle">machine A</text>
<!-- Text -->
<text xml:space="preserve" x="9600" y="630" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="168" text-anchor="middle">machine B</text>
<!-- Text -->
<text xml:space="preserve" x="4725" y="5850" fill="#000000" font-family="Helvetica" font-style="italic" font-weight="normal" font-size="168" text-anchor="middle">network connection</text>
<!-- Text -->
<text xml:space="preserve" x="2999" y="1582" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="middle">dll</text>
<!-- Text -->
<text xml:space="preserve" x="4799" y="3382" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="middle">net</text>
<!-- Text -->
<text xml:space="preserve" x="9599" y="1582" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="middle">saned</text>
<!-- Text -->
<text xml:space="preserve" x="9599" y="2482" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="middle">dll</text>
<!-- Text -->
<text xml:space="preserve" x="11399" y="3982" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="216" text-anchor="middle">autolum</text>
</g>
</svg>

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 5.8 KiB

BIN
figs/image-data.pdf 100644

Plik binarny nie jest wyświetlany.

Wyświetl plik

@ -0,0 +1,85 @@
<?xml version="1.0" standalone="no"?>
<!-- Creator: fig2dev Version 3.2.6a -->
<!-- CreationDate: 2019-11-19 07:59:01 -->
<!-- Magnification: 1 -->
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="522pt" height="95pt"
viewBox="1463 441 8694 1578">
<g fill="none">
<!-- Line -->
<rect x="1800" y="1200" width="1350" height="150"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<rect x="3150" y="1200" width="1350" height="150"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<rect x="4500" y="1200" width="1350" height="150"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<rect x="1800" y="1200" width="4050" height="150"
stroke="#000000" stroke-width="15px"/>
<!-- Line -->
<polyline points=" 1800,900 1950,825 3750,825 3825,750 3900,825 5700,825 5850,900"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<rect x="5850" y="1200" width="1350" height="150"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<rect x="7200" y="1200" width="1350" height="150"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<rect x="8550" y="1200" width="1350" height="150"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<rect x="5850" y="1200" width="4050" height="150"
stroke="#000000" stroke-width="15px"/>
<!-- Line -->
<polyline points=" 5850,900 6000,825 7800,825 7875,750 7950,825 9750,825 9900,900"
stroke="#000000" stroke-width="8px"/>
<!-- Text -->
<text xml:space="preserve" x="1875" y="1125" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">7 6 5 4 3 2 1 0</text>
<!-- Text -->
<text xml:space="preserve" x="3225" y="1125" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">7 6 5 4 3 2 1 0</text>
<!-- Text -->
<text xml:space="preserve" x="4575" y="1125" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">7 6 5 4 3 2 1 0</text>
<!-- Text -->
<text xml:space="preserve" x="2475" y="1575" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">r</text>
<!-- Text -->
<text xml:space="preserve" x="3825" y="1575" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">g</text>
<!-- Text -->
<text xml:space="preserve" x="5175" y="1575" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">b</text>
<!-- Text -->
<text xml:space="preserve" x="3825" y="600" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">pixel 0</text>
<!-- Text -->
<text xml:space="preserve" x="5925" y="1125" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">7 6 5 4 3 2 1 0</text>
<!-- Text -->
<text xml:space="preserve" x="7275" y="1125" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">7 6 5 4 3 2 1 0</text>
<!-- Text -->
<text xml:space="preserve" x="8625" y="1125" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">7 6 5 4 3 2 1 0</text>
<!-- Text -->
<text xml:space="preserve" x="6525" y="1575" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="start">r</text>
<!-- Text -->
<text xml:space="preserve" x="7875" y="1575" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">g</text>
<!-- Text -->
<text xml:space="preserve" x="9225" y="1575" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">b</text>
<!-- Text -->
<text xml:space="preserve" x="7875" y="600" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">pixel 1</text>
<!-- Text -->
<text xml:space="preserve" x="9225" y="1950" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">byte 5</text>
<!-- Text -->
<text xml:space="preserve" x="7875" y="1950" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">byte 4</text>
<!-- Text -->
<text xml:space="preserve" x="6525" y="1950" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">byte 3</text>
<!-- Text -->
<text xml:space="preserve" x="5175" y="1950" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">byte 2</text>
<!-- Text -->
<text xml:space="preserve" x="3825" y="1950" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">byte1</text>
<!-- Text -->
<text xml:space="preserve" x="2475" y="1950" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">byte0</text>
<!-- Text -->
<text xml:space="preserve" x="10050" y="1275" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="middle">....</text>
<!-- Text -->
<text xml:space="preserve" x="1725" y="1125" fill="#000000" font-family="Helvetica" font-style="normal" font-weight="normal" font-size="144" text-anchor="end">bit:</text>
</g>
</svg>

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 5.5 KiB

83
figs/xfer.pdf 100644
Wyświetl plik

@ -0,0 +1,83 @@
%PDF-1.7
%Çì<C387>¢
5 0 obj
<</Length 6 0 R/Filter /FlateDecode>>
stream
­”MNÄ0 …÷9EÖ,Bì8?>k`Á0  Xp}œ&i3I¡Uš¶±óì>“wm h¯z<ªë»¨_>Õ»Êï. Õ<C2A0>äçãI9<49>Î <11>>no` éWå8 !ÁòLœ#q]<5D>ÞÉóA=\é7ÅúKÔoÇ’”Å ¶ ÷êV¢/<2F> Ä‰Ýžà\¨4ð|µ9Gæ ÍìÁÎ8N¤<4E>R4ItM²6É{ñäU!',jð.I†,Ê{dÁ.Y4ÀR“BXâÕ2^Ú.n„ˆY:fU¬¾ ºG î©U§®Ä¦ +þàXƒ…|<7C>Q<>Á†Ñ6
J=:±2%1[³‰´9Ï";âPq9gû_˜ ˜ ˜`0Aw ð<>˜<EFBFBD>m˜ N˜Ý:TÄa¨Mu¨:uÕcrÅìXùˆ¨£¸f³kvqíW~ õü@ìùa¬3¸Ía8z²W9¡1T7†²Pƒ`š ”ÂõÈ9G⎘# Hìýâëæ0Ë=•¿f‡ž$ÆPã;(<28>«(±IjºeðìÝ¢¶§{Zwér¢¿; 5lí"U­Oq¥†í:¦Ó3'‡*.%k¥%ﯓžö<C5BE>ª¥V;lþ¿ó°”ýªendstream
endobj
6 0 obj
469
endobj
4 0 obj
<</Type/Page/MediaBox [0 0 362 182]
/Parent 3 0 R
/Resources<</ProcSet[/PDF]
/ExtGState 8 0 R
>>
/Contents 5 0 R
>>
endobj
3 0 obj
<< /Type /Pages /Kids [
4 0 R
] /Count 1
>>
endobj
1 0 obj
<</Type /Catalog /Pages 3 0 R
/Metadata 9 0 R
>>
endobj
7 0 obj
<</Type/ExtGState
/OPM 1>>endobj
8 0 obj
<</R7
7 0 R>>
endobj
9 0 obj
<</Type/Metadata
/Subtype/XML/Length 1343>>stream
<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
<?adobe-xap-filters esc="CRLF"?>
<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
<rdf:Description rdf:about='uuid:023a631d-4222-11f5-0000-ce548046993f' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='GPL Ghostscript 9.26'/>
<rdf:Description rdf:about='uuid:023a631d-4222-11f5-0000-ce548046993f' xmlns:xmp='http://ns.adobe.com/xap/1.0/'><xmp:ModifyDate>2019-11-18T13:15:15Z</xmp:ModifyDate>
<xmp:CreateDate>2019-11-18T13:15:15Z</xmp:CreateDate>
<xmp:CreatorTool>fig2dev Version 3.2.6a</xmp:CreatorTool></rdf:Description>
<rdf:Description rdf:about='uuid:023a631d-4222-11f5-0000-ce548046993f' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:023a631d-4222-11f5-0000-ce548046993f'/>
<rdf:Description rdf:about='uuid:023a631d-4222-11f5-0000-ce548046993f' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/pdf'><dc:title><rdf:Alt><rdf:li xml:lang='x-default'>figs/xfer.fig</rdf:li></rdf:Alt></dc:title></rdf:Description>
</rdf:RDF>
</x:xmpmeta>
<?xpacket end='w'?>
endstream
endobj
2 0 obj
<</Producer(GPL Ghostscript 9.26)
/CreationDate(D:20191118131515Z00'00')
/ModDate(D:20191118131515Z00'00')
/Title(figs/xfer.fig)
/Creator(fig2dev Version 3.2.6a)>>endobj
xref
0 10
0000000000 65535 f
0000000763 00000 n
0000002316 00000 n
0000000704 00000 n
0000000573 00000 n
0000000015 00000 n
0000000554 00000 n
0000000827 00000 n
0000000868 00000 n
0000000897 00000 n
trailer
<< /Size 10 /Root 1 0 R /Info 2 0 R
/ID [<D612C201CBC65D9CBBEEF5CE96972964><D612C201CBC65D9CBBEEF5CE96972964>]
>>
startxref
2494
%%EOF

98
figs/xfer.svg 100644
Wyświetl plik

@ -0,0 +1,98 @@
<?xml version="1.0" standalone="no"?>
<!-- Creator: fig2dev Version 3.2.6a -->
<!-- CreationDate: 2019-11-19 07:59:01 -->
<!-- Magnification: 1 -->
<svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
width="362pt" height="182pt"
viewBox="2238 3138 6024 3024">
<g fill="none">
<!-- Line -->
<defs>
<clipPath id="cp0">
<path clip-rule="evenodd" d="M 2238,3138 H 8262 V 6162 H 2238 z
M 7760,3240 7820,3300 7760,3360 8111,3311 8111,3290z"/>
</clipPath>
</defs>
<polyline points=" 2400,3300 8100,3300" clip-path="url(#cp0)"
stroke="#000000" stroke-width="15px"/>
<!-- Forward arrow to point 8100,3300 -->
<polygon points=" 7760,3360 8060,3300 7760,3240 7820,3300 7760,3360"
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
<!-- Line -->
<defs>
<clipPath id="cp1">
<path clip-rule="evenodd" d="M 2238,3138 H 8262 V 6162 H 2238 z
M 2742,3717 2679,3660 2736,3597 2393,3669 2394,3682z"/>
</clipPath>
</defs>
<polyline points=" 8100,3375 2400,3675" clip-path="url(#cp1)"
stroke="#000000" stroke-width="8px"/>
<!-- Forward arrow to point 2400,3675 -->
<polygon points=" 2736,3597 2440,3673 2742,3717 2679,3660 2736,3597"
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
<!-- Line -->
<defs>
<clipPath id="cp2">
<path clip-rule="evenodd" d="M 2238,3138 H 8262 V 6162 H 2238 z
M 7760,3690 7820,3750 7760,3810 8111,3761 8111,3740z"/>
</clipPath>
</defs>
<polyline points=" 2400,3750 8100,3750" clip-path="url(#cp2)"
stroke="#000000" stroke-width="15px"/>
<!-- Forward arrow to point 8100,3750 -->
<polygon points=" 7760,3810 8060,3750 7760,3690 7820,3750 7760,3810"
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
<!-- Line -->
<defs>
<clipPath id="cp3">
<path clip-rule="evenodd" d="M 2238,3138 H 8262 V 6162 H 2238 z
M 2742,4167 2679,4110 2736,4047 2393,4119 2394,4132z"/>
</clipPath>
</defs>
<polyline points=" 8100,3825 2400,4125" clip-path="url(#cp3)"
stroke="#000000" stroke-width="8px"/>
<!-- Forward arrow to point 2400,4125 -->
<polygon points=" 2736,4047 2440,4123 2742,4167 2679,4110 2736,4047"
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
<!-- Line -->
<rect x="2250" y="3150" width="6000" height="3000"
stroke="#000000" stroke-width="8px"/>
<!-- Line -->
<defs>
<clipPath id="cp4">
<path clip-rule="evenodd" d="M 2238,3138 H 8262 V 6162 H 2238 z
M 7760,4140 7820,4200 7760,4260 8111,4211 8111,4190z"/>
</clipPath>
</defs>
<polyline points=" 2400,4200 8100,4200" clip-path="url(#cp4)"
stroke="#000000" stroke-width="15px"/>
<!-- Forward arrow to point 8100,4200 -->
<polygon points=" 7760,4260 8060,4200 7760,4140 7820,4200 7760,4260"
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
<!-- Line -->
<defs>
<clipPath id="cp5">
<path clip-rule="evenodd" d="M 2238,3138 H 8262 V 6162 H 2238 z
M 2742,4617 2679,4560 2736,4497 2393,4569 2394,4582z"/>
</clipPath>
</defs>
<polyline points=" 8100,4275 2400,4575" clip-path="url(#cp5)"
stroke="#000000" stroke-width="8px"/>
<!-- Forward arrow to point 2400,4575 -->
<polygon points=" 2736,4497 2440,4573 2742,4617 2679,4560 2736,4497"
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
<!-- Line -->
<defs>
<clipPath id="cp6">
<path clip-rule="evenodd" d="M 2238,3138 H 8262 V 6162 H 2238 z
M 7760,4590 7820,4650 7760,4710 8111,4661 8111,4640z"/>
</clipPath>
</defs>
<polyline points=" 2400,4650 8100,4650" clip-path="url(#cp6)"
stroke="#000000" stroke-width="15px"/>
<!-- Forward arrow to point 8100,4650 -->
<polygon points=" 7760,4710 8060,4650 7760,4590 7820,4650 7760,4710"
stroke="#000000" stroke-width="15px" stroke-miterlimit="8" fill="#000000"/>
</g>
</svg>

Po

Szerokość:  |  Wysokość:  |  Rozmiar: 3.7 KiB

Wyświetl plik

@ -161,13 +161,17 @@ platform dependent. Several possibilities exist:
universe, as long as there is a network connection to that host and
provided the user is permitted to access that scanner.
:raw-latex:`\leavevmode`
:raw-latex:`\psfig{file=figs/hierarchy.eps,angle=270,width=\textwidth}`
.. figure:: figs/hierarchy.*
:name: fig:hierarchy
:scale: 100%
:align: center
Example SANE Hiearchy
The above discussion lists just a few ways for frontends to attach to a
backend. It is of course possible to combine these solutions to provide
an entire hierarchy of SANE backends. Such a hierarchy is depicted in
Figure :raw-latex:`\ref{fig:hierarchy}`. The figure shows that machine A
:numref:`fig:hierarchy`. The figure shows that machine A
uses a dynamic-linking based meta backend called ``dll``
to access the backends called ``pnm``,
``mustek``, and ``net``. The first two
@ -240,25 +244,33 @@ sample value are transmitted in the machines native byte order.
apply the adjustment if necessary. In essence, this implements a
“receiver-makes-right” approach.
:raw-latex:`\leavevmode`
:raw-latex:`\psfig{file=figs/xfer.eps,width=0.5\textwidth}`
.. figure:: figs/xfer.*
:name: fig:xfer
:scale: 50%
:align: center
Transfer order of image data bytes
The order in which the sample values in a frame are transmitted is
illustrated in Figure :raw-latex:`\ref{fig:xfer}`. As can be seen, the
illustrated in :numref:`fig:xfer`. As can be seen, the
values are transmitted row by row and each row is transmitted from
left-most to right-most column. The left-to-right, top-to-bottom
transmission order applies when the image is viewed in its normal
orientation (as it would be displayed on a screen, for example).
If a frame contains multiple channels, then the channels are transmitted
in an interleaved fashion. Figure :raw-latex:`\ref{fig:pixels}`
in an interleaved fashion. :numref:`fig:pixels`
illustrates this for the case where a frame contains a complete
red/green/blue image with a bit-depth of 8. For a bit depth of 1, each
byte contains 8 sample values of a *single* channel. In other words, a
bit depth 1 frame is transmitted in a byte interleaved fashion.
:raw-latex:`\leavevmode`
:raw-latex:`\psfig{file=figs/image-data.eps,width=0.8\textwidth}`
.. figure:: figs/image-data.*
:name: fig:pixels
:scale: 80%
:align: center
Bit and byte order or image data
When transmitting an image frame by frame, the frontend needs to know
what part of the image a frame represents (and how many frames it should
@ -585,8 +597,8 @@ Most SANE operations return a value of type
completion status of the operation. If an operation completes
successfully, :macro:`SANE_STATUS_GOOD` is returned. In case of an error, a
value is returned that indicates the nature of the problem. The complete
list of available status codes is listed in Table
:ref:`tab:status`. It is recommended to use function
list of available status codes is listed in
:numref:`tab:status`. It is recommended to use function
:func:`sane_strstatus()` to convert status codes into a
legible string.
@ -781,7 +793,7 @@ Option Value Type
Member :member:`type` specifies the type of the option value.
The possible values for type :type:`SANE_Value_Type`
are described in Table :ref:`tab:valuetype`.
are described in :numref:`tab:valuetype`.
.. table:: Option Value Types (:type:`SANE_Value_Type`)
:name: tab:valuetype
@ -819,8 +831,8 @@ Option Value Unit
Member :member:`unit` specifies what the physical unit of the
option value is. The possible values for type
:type:`SANE_Unit` are described in Table
:ref:`tab:units`. Note that the specified unit is what the
:type:`SANE_Unit` are described in
:numref:`tab:units`. Note that the specified unit is what the
SANE backend expects. It is entirely up to a frontend as to how these
units a presented to the user. For example, SANE expresses all lengths
in millimeters. A frontend is generally expected to provide appropriate
@ -879,7 +891,7 @@ Option Capabilities
Member :member:`cap` describes what capabilities the option
posseses. This is a bitset that is formed as the inclusive logical OR of
the capabilities described in Table :ref:`tab:capabilities`.
the capabilities described in :numref:`tab:capabilities`.
The SANE API provides the following to macros to test certain features
of a given capability bitset:
@ -959,7 +971,7 @@ values that are allowed for the option are described by one of the union
members of member :member:`constraint`. The possible values of
type :type:`SANE_Constraint_Type` and the
interpretation of the :member:`constraint` union is described
in Table :ref:`tab:constraints`.
in :numref:`tab:constraints`.
.. table:: Option Value Constraints
:name: tab:constraints
@ -1234,7 +1246,7 @@ of this argument is described in more detail below.
The way the option is affected by a call to this function is controlled
by parameter :data:`a` which is a value of type
:type:`SANE_Action`. The possible values and their
meaning is described in Table :ref:`tab:actions`.
meaning is described in :numref:`tab:actions`.
.. table:: Action Values (:type:`SANE_Action`)
:name: tab:actions
@ -1261,7 +1273,7 @@ additional information on how well the request has been met is returned
in :data:`*i` (if :data:`i` is
non-:macro:`NULL`). The returned value is a bitset that may
contain any combination of the values described in
Table :ref:`tab:info`.
:numref:`tab:info`.
.. table:: Additional Information Returned When Setting an Option
:name: tab:info
@ -1363,7 +1375,7 @@ structure is given below.
Member :member:`format` specifies the format of the next frame
to be returned. The possible values for type
:type:`SANE_Frame` are described in
Table :ref:`tab:frameformat`. The meaning of these values is
:numref:`tab:frameformat`. The meaning of these values is
described in more detail in Section :raw-latex:`\ref{sec:imageformat}`.
.. table:: Frame Format (:type:`SANE_Frame`)
@ -1654,13 +1666,17 @@ Code Flow
---------
The code flow for the SANE API is illustrated in
Figure :raw-latex:`\ref{fig:flow}`. Functions
:numref:`fig:flow`. Functions
:func:`sane_init()` and :func:`sane_exit()`
initialize and exit the backend, respectively. All other calls must be
performed after initialization and before exiting the backend.
:raw-latex:`\leavevmode`
:raw-latex:`\psfig{file=figs/flow.eps,height=0.5\textheight}`
.. figure:: figs/flow.*
:name: fig:flow
:scale: 50%
:align: center
Code flow
Function :func:`sane_get_devices()` can be called any time
after :func:`sane_init()` has been called. It returns the
@ -1805,7 +1821,7 @@ Scan Area Options
The four most important well-known options are the ones that define the
scan area. The scan area is defined by two points (x/y coordinate pairs)
that specify the top-left and the bottom-right corners. This is
illustrated in Figure :raw-latex:`\ref{fig:area}`. Note that the origin
illustrated in :numref:`fig:area`. Note that the origin
of the coordinate system is at the top-left corner of the scan surface
as seen by the sensor (which typically is a mirror image of the scan
surface seen by the user). For this reason, the top-left corner is the
@ -1815,8 +1831,12 @@ abscissa and ordinate values are simulatenously the *largest*. If this
coordinate system is not natural for a given device, it is the job of
the backend to perform the necessary conversions.
:raw-latex:`\leavevmode`
:raw-latex:`\psfig{file=figs/area.eps,height=0.3\textheight}`
.. figure:: figs/area.*
:name: fig:area
:scale: 90%
:align: center
Scan area options
The names of the four options that define the scan area are given in the
table below: