Hex Artifact Content
Not logged in

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.