Artifact c0171b9a8fc5e0af6f5b88734ebd87650c002612:
Wiki page
[
zbar command] by
chw
2019-04-26 06:26:15.
0000: 44 20 32 30 31 39 2d 30 34 2d 32 36 54 30 36 3a D 2019-04-26T06:
0010: 32 36 3a 31 35 2e 39 32 34 0a 4c 20 7a 62 61 72 26:15.924.L zbar
0020: 5c 73 63 6f 6d 6d 61 6e 64 0a 50 20 35 65 61 66 \scommand.P 5eaf
0030: 38 65 36 32 32 39 32 34 33 39 64 32 39 31 37 36 8e62292439d29176
0040: 64 35 31 65 32 34 33 38 34 38 66 36 63 62 65 62 d51e243848f6cbeb
0050: 37 37 61 30 0a 55 20 63 68 77 0a 57 20 32 39 34 77a0.U chw.W 294
0060: 32 0a 3c 68 32 3e 7a 62 61 72 20 63 6f 6d 6d 61 2.<h2>zbar comma
0070: 6e 64 3c 2f 68 32 3e 0d 0a 0d 0a 3c 68 33 3e 4e nd</h2>....<h3>N
0080: 61 6d 65 3c 2f 68 33 3e 0d 0a 0d 0a 3c 62 3e 7a ame</h3>....<b>z
0090: 62 61 72 3a 3a 2a 3c 2f 62 3e 20 2d 20 69 6e 74 bar::*</b> - int
00a0: 65 72 66 61 63 65 20 74 6f 20 74 68 65 20 5a 42 erface to the ZB
00b0: 61 72 20 62 61 72 63 6f 64 65 20 73 63 61 6e 6e ar barcode scann
00c0: 65 72 20 6c 69 62 72 61 72 79 2e 0d 0a 0d 0a 3c er library.....<
00d0: 68 33 3e 53 79 6e 6f 70 73 69 73 3c 2f 68 33 3e h3>Synopsis</h3>
00e0: 0d 0a 0d 0a 3c 74 74 3e 70 61 63 6b 61 67 65 20 ....<tt>package
00f0: 72 65 71 75 69 72 65 20 7a 62 61 72 3c 2f 74 74 require zbar</tt
0100: 3e 3c 62 72 3e 0d 0a 3c 74 74 3e 7a 62 61 72 3a ><br>..<tt>zbar:
0110: 3a 64 65 63 6f 64 65 20 3f 6f 70 74 69 6f 6e 73 :decode ?options
0120: 3f 3c 2f 74 74 3e 3c 62 72 3e 0d 0a 3c 74 74 3e ?</tt><br>..<tt>
0130: 7a 62 61 72 3a 3a 61 73 79 6e 63 5f 64 65 63 6f zbar::async_deco
0140: 64 65 20 3f 6f 70 74 69 6f 6e 73 3f 3c 2f 74 74 de ?options?</tt
0150: 3e 3c 62 72 3e 0d 0a 3c 74 74 3e 7a 62 61 72 3a ><br>..<tt>zbar:
0160: 3a 73 79 6d 62 6f 6c 5f 74 79 70 65 73 3c 2f 74 :symbol_types</t
0170: 74 3e 0d 0a 0d 0a 3c 68 33 3e 44 65 73 63 72 69 t>....<h3>Descri
0180: 70 74 69 6f 6e 3c 2f 68 33 3e 0d 0a 0d 0a 54 68 ption</h3>....Th
0190: 65 73 65 20 63 6f 6d 6d 61 6e 64 73 20 61 72 65 ese commands are
01a0: 20 75 73 65 64 20 74 6f 20 73 63 61 6e 20 62 61 used to scan ba
01b0: 72 63 6f 64 65 73 20 6f 66 66 20 70 69 78 65 6c rcodes off pixel
01c0: 20 69 6d 61 67 65 20 64 61 74 61 2e 0d 0a 0d 0a image data.....
01d0: 3c 74 74 3e 7a 62 61 72 3a 3a 64 65 63 6f 64 65 <tt>zbar::decode
01e0: 20 3c 69 3e 70 68 6f 74 6f 45 74 63 3c 2f 69 3e <i>photoEtc</i>
01f0: 20 3f 3c 69 3e 73 79 6d 73 3c 2f 69 3e 3f 3c 2f ?<i>syms</i>?</
0200: 74 74 3e 0d 0a 0d 0a 20 20 20 20 53 63 61 6e 73 tt>.... Scans
0210: 20 74 68 65 20 70 68 6f 74 6f 20 69 6d 61 67 65 the photo image
0220: 20 3c 74 74 3e 3c 69 3e 70 68 6f 74 6f 45 74 63 <tt><i>photoEtc
0230: 3c 2f 69 3e 3c 2f 74 74 3e 20 66 6f 72 20 62 61 </i></tt> for ba
0240: 72 63 6f 64 65 20 69 6e 66 6f 72 6d 61 74 69 6f rcode informatio
0250: 6e 2e 20 41 6c 74 65 72 6e 61 74 69 76 65 6c 79 n. Alternatively
0260: 2c 20 3c 74 74 3e 3c 69 3e 70 68 6f 74 6f 45 74 , <tt><i>photoEt
0270: 63 3c 2f 69 3e 3c 2f 74 74 3e 20 63 61 6e 20 62 c</i></tt> can b
0280: 65 20 61 20 66 6f 75 72 20 65 6c 65 6d 65 6e 74 e a four element
0290: 20 6c 69 73 74 20 64 65 73 63 72 69 62 69 6e 67 list describing
02a0: 20 61 20 67 72 65 79 73 63 61 6c 65 20 6f 72 20 a greyscale or
02b0: 52 47 42 20 69 6d 61 67 65 20 61 73 20 61 20 62 RGB image as a b
02c0: 79 74 65 20 61 72 72 61 79 20 77 69 74 68 20 38 yte array with 8
02d0: 20 62 69 74 73 20 70 65 72 20 63 6f 6c 6f 72 20 bits per color
02e0: 63 6f 6d 70 6f 6e 65 6e 74 2e 20 54 68 65 20 65 component. The e
02f0: 6c 65 6d 65 6e 74 73 20 6d 75 73 74 20 62 65 20 lements must be
0300: 77 69 64 74 68 2c 20 68 65 69 67 68 74 2c 20 6e width, height, n
0310: 75 6d 62 65 72 20 6f 66 20 63 6f 6c 6f 72 20 63 umber of color c
0320: 6f 6d 70 6f 6e 65 6e 74 73 20 61 6e 64 20 62 79 omponents and by
0330: 74 65 20 61 72 72 61 79 20 6f 66 20 74 68 65 20 te array of the
0340: 69 6d 61 67 65 27 73 20 70 69 78 65 6c 73 20 69 image's pixels i
0350: 6e 20 74 68 69 73 20 6f 72 64 65 72 2e 20 54 68 n this order. Th
0360: 65 20 6f 70 74 69 6f 6e 61 6c 20 70 61 72 61 6d e optional param
0370: 65 74 65 72 20 3c 74 74 3e 3c 69 3e 73 79 6d 73 eter <tt><i>syms
0380: 3c 2f 69 3e 3c 2f 74 74 3e 20 6d 75 73 74 20 62 </i></tt> must b
0390: 65 20 61 20 6c 69 73 74 20 6f 66 20 62 61 72 63 e a list of barc
03a0: 6f 64 65 20 73 79 6d 62 6f 6c 6f 67 69 65 73 20 ode symbologies
03b0: 74 6f 20 62 65 20 73 63 61 6e 6e 65 64 20 66 6f to be scanned fo
03c0: 72 2e 20 49 66 20 6f 6d 69 74 74 65 64 2c 20 61 r. If omitted, a
03d0: 6c 6c 20 6b 6e 6f 77 6e 20 73 79 6d 62 6f 6c 6f ll known symbolo
03e0: 67 69 65 73 20 61 72 65 20 74 72 69 65 64 2e 20 gies are tried.
03f0: 54 68 65 20 63 6f 6d 6d 61 6e 64 20 72 65 74 75 The command retu
0400: 72 6e 73 20 61 20 74 68 72 65 65 20 65 6c 65 6d rns a three elem
0410: 65 6e 74 20 6c 69 73 74 20 77 69 74 68 20 74 68 ent list with th
0420: 65 20 66 69 72 73 74 20 65 6c 65 6d 65 6e 74 20 e first element
0430: 62 65 69 6e 67 20 74 68 65 20 6e 75 6d 62 65 72 being the number
0440: 20 6f 66 20 6d 69 6c 6c 69 73 65 63 6f 6e 64 73 of milliseconds
0450: 20 73 70 65 6e 74 20 6f 6e 20 64 65 63 6f 64 69 spent on decodi
0460: 6e 67 2e 20 54 68 65 20 73 65 63 6f 6e 64 20 65 ng. The second e
0470: 6c 65 6d 65 6e 74 20 69 73 20 74 68 65 20 64 65 lement is the de
0480: 63 6f 64 65 64 20 73 79 6d 62 6f 6c 6f 67 79 20 coded symbology
0490: 6f 6e 20 73 75 63 63 65 73 73 20 6f 72 20 61 6e on success or an
04a0: 20 65 6d 70 74 79 20 73 74 72 69 6e 67 20 6f 6e empty string on
04b0: 20 66 61 69 6c 75 72 65 2c 20 61 6e 64 20 74 68 failure, and th
04c0: 65 20 6c 61 73 74 20 65 6c 65 6d 65 6e 74 20 69 e last element i
04d0: 73 20 74 68 65 20 73 63 61 6e 20 72 65 73 75 6c s the scan resul
04e0: 74 20 61 73 20 61 20 62 79 74 65 20 61 72 72 61 t as a byte arra
04f0: 79 2e 0d 0a 0d 0a 3c 74 74 3e 7a 62 61 72 3a 3a y.....<tt>zbar::
0500: 61 73 79 6e 63 5f 64 65 63 6f 64 65 20 3c 69 3e async_decode <i>
0510: 70 68 6f 74 6f 45 74 63 20 63 61 6c 6c 62 61 63 photoEtc callbac
0520: 6b 3c 2f 69 3e 20 3f 3c 69 3e 73 79 6d 73 3c 2f k</i> ?<i>syms</
0530: 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 i>?</tt>....
0540: 53 69 6d 69 6c 61 72 20 74 6f 20 3c 74 74 3e 7a Similar to <tt>z
0550: 62 61 72 3a 3a 64 65 63 6f 64 65 3c 2f 74 74 3e bar::decode</tt>
0560: 20 62 75 74 20 74 68 65 20 64 65 63 6f 64 65 72 but the decoder
0570: 20 69 73 20 72 75 6e 20 61 73 20 61 20 62 61 63 is run as a bac
0580: 6b 67 72 6f 75 6e 64 20 74 68 72 65 61 64 20 61 kground thread a
0590: 6e 64 20 74 68 65 20 72 65 73 75 6c 74 20 69 73 nd the result is
05a0: 20 70 72 65 73 65 6e 74 65 64 20 74 6f 20 61 20 presented to a
05b0: 3c 74 74 3e 3c 69 3e 63 61 6c 6c 62 61 63 6b 3c <tt><i>callback<
05c0: 2f 69 3e 3c 2f 74 74 3e 20 70 72 6f 63 65 64 75 /i></tt> procedu
05d0: 72 65 2e 20 49 74 20 72 65 71 75 69 72 65 73 20 re. It requires
05e0: 74 68 65 20 54 63 6c 20 63 6f 72 65 20 62 65 69 the Tcl core bei
05f0: 6e 67 20 62 75 69 6c 74 20 77 69 74 68 20 74 68 ng built with th
0600: 72 65 61 64 20 73 75 70 70 6f 72 74 2c 20 61 6e read support, an
0610: 64 20 61 20 72 75 6e 6e 69 6e 67 20 65 76 65 6e d a running even
0620: 74 20 6c 6f 6f 70 20 73 69 6e 63 65 20 74 68 65 t loop since the
0630: 20 63 61 6c 6c 62 61 63 6b 20 69 73 20 69 6e 76 callback is inv
0640: 6f 6b 65 64 20 61 73 20 61 6e 20 65 76 65 6e 74 oked as an event
0650: 20 6f 72 20 64 6f 2d 77 68 65 6e 2d 69 64 6c 65 or do-when-idle
0660: 20 68 61 6e 64 6c 65 72 2e 20 54 68 72 65 65 20 handler. Three
0670: 61 64 64 69 74 69 6f 6e 61 6c 20 61 72 67 75 6d additional argum
0680: 65 6e 74 73 20 61 72 65 20 70 61 73 73 65 64 20 ents are passed
0690: 74 6f 20 3c 74 74 3e 3c 69 3e 63 61 6c 6c 62 61 to <tt><i>callba
06a0: 63 6b 3c 2f 69 3e 3c 2f 74 74 3e 3a 20 74 68 65 ck</i></tt>: the
06b0: 20 6e 75 6d 62 65 72 20 6f 66 20 6d 69 6c 6c 69 number of milli
06c0: 73 65 63 6f 6e 64 73 20 66 6f 72 20 64 65 63 6f seconds for deco
06d0: 64 69 6e 67 2c 20 74 68 65 20 64 65 63 6f 64 65 ding, the decode
06e0: 64 20 73 79 6d 62 6f 6c 6f 67 79 20 6f 6e 20 73 d symbology on s
06f0: 75 63 63 65 73 73 20 6f 72 20 61 6e 20 65 6d 70 uccess or an emp
0700: 74 79 20 73 74 72 69 6e 67 20 6f 6e 20 66 61 69 ty string on fai
0710: 6c 75 72 65 2c 20 61 6e 64 20 74 68 65 20 73 63 lure, and the sc
0720: 61 6e 20 72 65 73 75 6c 74 20 61 73 20 61 20 62 an result as a b
0730: 79 74 65 20 61 72 72 61 79 2e 20 54 68 65 20 6f yte array. The o
0740: 70 74 69 6f 6e 61 6c 20 70 61 72 61 6d 65 74 65 ptional paramete
0750: 72 20 3c 74 74 3e 3c 69 3e 73 79 6d 73 3c 2f 69 r <tt><i>syms</i
0760: 3e 3c 2f 74 74 3e 20 68 61 73 20 74 68 65 20 73 ></tt> has the s
0770: 61 6d 65 20 6d 65 61 6e 69 6e 67 20 61 73 20 69 ame meaning as i
0780: 6e 20 74 68 65 20 3c 74 74 3e 7a 62 61 72 3a 3a n the <tt>zbar::
0790: 64 65 63 6f 64 65 3c 2f 74 74 3e 20 63 6f 6d 6d decode</tt> comm
07a0: 61 6e 64 2e 20 43 61 75 74 69 6f 6e 3a 20 6f 6e and. Caution: on
07b0: 6c 79 20 61 20 73 69 6e 67 6c 65 20 74 68 72 65 ly a single thre
07c0: 61 64 20 69 6e 73 74 61 6e 63 65 20 69 73 20 73 ad instance is s
07d0: 75 70 70 6f 72 74 65 64 20 70 65 72 20 54 63 6c upported per Tcl
07e0: 20 69 6e 74 65 72 70 72 65 74 65 72 2c 20 69 2e interpreter, i.
07f0: 65 2e 20 61 6e 6f 74 68 65 72 20 61 73 79 6e 63 e. another async
0800: 68 72 6f 6e 6f 75 73 20 64 65 63 6f 64 65 20 70 hronous decode p
0810: 72 6f 63 65 73 73 20 63 61 6e 20 6f 6e 6c 79 20 rocess can only
0820: 62 65 20 73 74 61 72 74 65 64 20 77 68 65 6e 20 be started when
0830: 61 20 70 72 65 76 69 6f 75 73 20 64 65 63 6f 64 a previous decod
0840: 65 20 70 72 6f 63 65 73 73 20 68 61 73 20 66 69 e process has fi
0850: 6e 69 73 68 65 64 2e 0d 0a 0d 0a 3c 74 74 3e 7a nished.....<tt>z
0860: 62 61 72 3a 3a 61 73 79 6e 63 5f 64 65 63 6f 64 bar::async_decod
0870: 65 20 73 74 61 74 75 73 3c 2f 74 74 3e 0d 0a 0d e status</tt>...
0880: 0a 20 20 20 20 52 65 74 75 72 6e 73 20 74 68 65 . Returns the
0890: 20 63 75 72 72 65 6e 74 20 73 74 61 74 65 20 6f current state o
08a0: 66 20 74 68 65 20 61 73 79 6e 63 68 72 6f 6e 6f f the asynchrono
08b0: 75 73 20 64 65 63 6f 64 65 20 74 68 72 65 61 64 us decode thread
08c0: 20 61 73 20 61 20 73 74 72 69 6e 67 3a 20 3c 74 as a string: <t
08d0: 74 3e 3c 69 3e 73 74 6f 70 70 65 64 3c 2f 69 3e t><i>stopped</i>
08e0: 3c 2f 74 74 3e 20 77 68 65 6e 20 6e 6f 20 61 73 </tt> when no as
08f0: 79 6e 63 68 72 6f 6e 6f 75 73 20 64 65 63 6f 64 ynchronous decod
0900: 65 20 74 68 72 65 61 64 20 68 61 73 20 62 65 65 e thread has bee
0910: 6e 20 73 74 61 72 74 65 64 2c 20 3c 74 74 3e 3c n started, <tt><
0920: 69 3e 72 75 6e 6e 69 6e 67 3c 2f 69 3e 3c 2f 74 i>running</i></t
0930: 74 3e 20 77 68 65 6e 20 61 20 61 73 79 6e 63 68 t> when a asynch
0940: 72 6f 6e 6f 75 73 20 64 65 63 6f 64 65 20 69 73 ronous decode is
0950: 20 69 6e 20 70 72 6f 67 72 65 73 73 2c 20 61 6e in progress, an
0960: 64 20 3c 74 74 3e 3c 69 3e 72 65 61 64 79 3c 2f d <tt><i>ready</
0970: 69 3e 3c 2f 74 74 3e 20 77 68 65 6e 20 74 68 65 i></tt> when the
0980: 20 6e 65 78 74 20 61 73 79 6e 63 68 72 6f 6e 6f next asynchrono
0990: 75 73 20 64 65 63 6f 64 65 20 63 61 6e 20 62 65 us decode can be
09a0: 20 73 74 61 72 74 65 64 2e 0d 0a 0d 0a 3c 74 74 started.....<tt
09b0: 3e 7a 62 61 72 3a 3a 61 73 79 6e 63 5f 64 65 63 >zbar::async_dec
09c0: 6f 64 65 20 73 74 6f 70 3c 2f 74 74 3e 0d 0a 0d ode stop</tt>...
09d0: 0a 20 20 20 20 53 74 6f 70 73 20 74 68 65 20 62 . Stops the b
09e0: 61 63 6b 67 72 6f 75 6e 64 20 74 68 72 65 61 64 ackground thread
09f0: 20 66 6f 72 20 61 73 79 6e 63 68 72 6f 6e 6f 75 for asynchronou
0a00: 73 20 64 65 63 6f 64 69 6e 67 20 69 66 20 69 74 s decoding if it
0a10: 20 68 61 73 20 62 65 65 6e 20 69 6d 70 6c 69 63 has been implic
0a20: 69 74 65 6c 79 20 73 74 61 72 74 65 64 20 62 79 itely started by
0a30: 20 61 20 70 72 69 6f 72 20 3c 74 74 3e 7a 62 61 a prior <tt>zba
0a40: 72 3a 3a 61 73 79 6e 63 5f 64 65 63 6f 64 65 3c r::async_decode<
0a50: 2f 74 74 3e 2e 20 54 68 69 73 20 63 61 6e 20 62 /tt>. This can b
0a60: 65 20 75 73 65 66 75 6c 20 74 6f 20 63 6f 6e 73 e useful to cons
0a70: 65 72 76 65 20 6d 65 6d 6f 72 79 20 72 65 73 6f erve memory reso
0a80: 75 72 63 65 73 2e 0d 0a 0d 0a 3c 74 74 3e 7a 62 urces.....<tt>zb
0a90: 61 72 3a 3a 73 79 6d 62 6f 6c 5f 74 79 70 65 73 ar::symbol_types
0aa0: 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 </tt>.... Ret
0ab0: 75 72 6e 73 20 61 20 6c 69 73 74 20 6f 66 20 73 urns a list of s
0ac0: 75 70 70 6f 72 74 65 64 20 73 79 6d 62 6f 6c 6f upported symbolo
0ad0: 67 69 65 73 20 6f 66 20 74 68 65 20 73 63 61 6e gies of the scan
0ae0: 6e 65 72 2c 20 63 75 72 72 65 6e 74 6c 79 20 3c ner, currently <
0af0: 74 74 3e 45 41 4e 38 3c 2f 74 74 3e 2c 20 3c 74 tt>EAN8</tt>, <t
0b00: 74 3e 55 50 43 45 3c 2f 74 74 3e 2c 20 3c 74 74 t>UPCE</tt>, <tt
0b10: 3e 49 53 42 4e 31 30 3c 2f 74 74 3e 2c 20 3c 74 >ISBN10</tt>, <t
0b20: 74 3e 55 50 43 41 3c 2f 74 74 3e 2c 20 3c 74 74 t>UPCA</tt>, <tt
0b30: 3e 45 41 4e 31 33 3c 2f 74 74 3e 2c 20 3c 74 74 >EAN13</tt>, <tt
0b40: 3e 49 53 42 4e 31 33 3c 2f 74 74 3e 2c 20 3c 74 >ISBN13</tt>, <t
0b50: 74 3e 44 41 54 41 42 41 52 3c 2f 74 74 3e 2c 20 t>DATABAR</tt>,
0b60: 3c 74 74 3e 44 41 54 41 42 41 52 5f 45 58 50 3c <tt>DATABAR_EXP<
0b70: 2f 74 74 3e 2c 20 3c 74 74 3e 49 32 35 3c 2f 74 /tt>, <tt>I25</t
0b80: 74 3e 2c 20 3c 74 74 3e 43 4f 44 41 42 41 52 3c t>, <tt>CODABAR<
0b90: 2f 74 74 3e 2c 20 3c 74 74 3e 43 4f 44 45 33 39 /tt>, <tt>CODE39
0ba0: 3c 2f 74 74 3e 2c 20 3c 74 74 3e 51 52 43 4f 44 </tt>, <tt>QRCOD
0bb0: 45 3c 2f 74 74 3e 2c 20 3c 74 74 3e 43 4f 44 45 E</tt>, <tt>CODE
0bc0: 39 33 3c 2f 74 74 3e 2c 20 61 6e 64 20 3c 74 74 93</tt>, and <tt
0bd0: 3e 43 4f 44 45 31 32 38 3c 2f 74 74 3e 2e 0d 0a >CODE128</tt>...
0be0: 0a 5a 20 37 61 34 30 65 30 37 62 66 35 33 38 39 .Z 7a40e07bf5389
0bf0: 64 38 65 65 37 66 38 36 31 39 32 39 66 31 36 34 d8ee7f861929f164
0c00: 36 61 31 0a 6a1.