This project has moved and is read-only. For the latest updates, please go here.

Does ZXing.Net QRCode support Structured Append?

Jul 13, 2012 at 3:47 AM

Does ZXing.Net QRCode support Structured Append?

(mode indicator is 0011)

How to test this function?

Tks!

Jul 13, 2012 at 7:54 AM

Sorry, unfortunately, not.

Jul 13, 2012 at 9:47 AM
Edited Jul 13, 2012 at 9:48 AM

When does  ZXing.Net QRCode support Structured Append?

Jul 15, 2012 at 12:36 PM

ZXing.Net is a port of the java based original zxing http://code.google.com/p/zxing/

So when zxing supports it zxing.net will too.

Perhaps if I will get some sample barcodes I will try to implement it for zxing.net and than port it back to zxing.

Apr 25, 2013 at 2:13 AM
Hi.

I'm also interested in Structured Append.

It is very happy if ZXing.net has any chance to support it. I'll help you.

Here is a sample. They are generated by libqrencode 3.4.2 on cygwin.

https://dl.dropboxusercontent.com/u/24560712/QRS/StructuredQRCode-01.png
https://dl.dropboxusercontent.com/u/24560712/QRS/StructuredQRCode-02.png

Command line:
./qrencode -S -l L -v 2 -t PNG -o StructuredQRCode.png "The quick brown fox jumps over the lazy dog"
Tool's help:
$ ./qrencode
qrencode version 3.4.2
Copyright (C) 2006-2012 Kentaro Fukuchi
Usage: qrencode [OPTION]... [STRING]
Encode input data in a QR Code and save as a PNG or EPS image.

  -h           display this message.
  --help       display the usage of long options.
  -o FILENAME  write image to FILENAME. If '-' is specified, the result
               will be output to standard output. If -S is given, structured
               symbols are written to FILENAME-01.png, FILENAME-02.png, ...
               (suffix is removed from FILENAME, if specified)
  -s NUMBER    specify module size in dots (pixels). (default=3)
  -l {LMQH}    specify error correction level from L (lowest) to H (highest).
               (default=L)
  -v NUMBER    specify the version of the symbol. (default=auto)
  -m NUMBER    specify the width of the margins. (default=4 (2 for Micro))
  -d NUMBER    specify the DPI of the generated PNG. (default=72)
  -t {PNG,EPS,SVG,ANSI,ANSI256,ASCII,ASCIIi,UTF8,ANSIUTF8}
               specify the type of the generated image. (default=PNG)
  -S           make structured symbols. Version must be specified.
  -k           assume that the input text contains kanji (shift-jis).
  -c           encode lower-case alphabet characters in 8-bit mode. (default)
  -i           ignore case distinctions and use only upper-case characters.
  -8           encode entire data in 8-bit mode. -k, -c and -i will be ignored.
  -M           encode in a Micro QR Code.
  --foreground=RRGGBB[AA]
  --background=RRGGBB[AA]
               specify foreground/background color in hexadecimal notation.
               6-digit (RGB) or 8-digit (RGBA) form are supported.
               Color output support available only in PNG and SVG.
  -V           display the version number and copyrights of the qrencode.
  [STRING]     input data. If it is not specified, data will be taken from
               standard input.
Tell me if I can help you.

Thanks!
kenji uno
May 4, 2013 at 1:26 PM
I committed a small change which adds the sequence number and the parity value to the ResultMetadata of the decoder result for QR Codes.
May 8, 2013 at 1:39 AM
Thank you!

I could get the merged text, with r86075!

FYI here is a set of Results output.
--- 0
BarcodeFormat=QR_CODE
RawBytes=Byte[] Array
ResultMetadata=
  BYTE_SEGMENTS=System.Collections.Generic.List`1[System.Byte[]]
  ERROR_CORRECTION_LEVEL=L
  STRUCTURED_APPEND_SEQUENCE=17
  STRUCTURED_APPEND_PARITY=79
ResultPoints=ResultPoint[] Array ; 4 points
  [0]=(119.5, 110.5)
  [1]=(119.5, 56.5)
  [2]=(173.5, 56.5)
  [3]=(164.5, 101.5)
Text= the lazy dog
Timestamp=635036022080691425

--- 1
BarcodeFormat=QR_CODE
RawBytes=Byte[] Array
ResultMetadata=
  BYTE_SEGMENTS=System.Collections.Generic.List`1[System.Byte[]]
  ERROR_CORRECTION_LEVEL=L
  STRUCTURED_APPEND_SEQUENCE=1
  STRUCTURED_APPEND_PARITY=79
ResultPoints=ResultPoint[] Array ; 4 points
  [0]=(22.5, 76.5)
  [1]=(22.5, 22.5)
  [2]=(76.5, 22.5)
  [3]=(67.5, 67.5)
Text=The quick brown fox jumps over
Timestamp=635036022080891437

--- 2
BarcodeFormat=QR_CODE
RawBytes=Byte[] Array
ResultMetadata=(none) ; null
ResultPoints=ResultPoint[] Array ; 0 points
Text=The quick brown fox jumps over the lazy dog
Timestamp=635036025106344483