ZXing.Result
から得られました ZXing.BarcodeReader
の特性を提供する RawBytes
の byte[]
。しかし、私は試してみましたが、 ZXing.BarcodeWriter
受け入れる byte[]
その議論として。
私はバーコードを持っていたい ZXing.BarcodeWriter
それはまさにそれと同じです ZXing.BarcodeReader
読む。
バーコードはコード128として知られており、
BarcodeReader
与えるRawBytes
3バイトで始まり、105
,102
,42
,Code 128の[Start Code C]、[FNC 1]、[42]を意味し、
バーコードは2桁で始まります
4
,2
.
このような機能を見つける主な理由は、バーコードが変換されるとメタデータが失われることです string
変換されます。
string
ただ表す4
そして2
[開始コードC]と[FNC 1]は失われます。
そのための機能はありますか?バーコード形式がわかっていると思われるかもしれません。
私はZXing.NETを使用していますが、機能はさまざまなプラットフォーム間で似ていると思います。
回答:
回答№1は0バーコードタイプに依存し、エンコードバイト配列パラメータを持つメソッドが使用できます。 Aztec-Barcodeの場合、メソッドを提供するcom.google.zxing.aztec.encoder.Encoderクラスを使用できます。
public static AztecCode encode(byte[] data)
例えば、QRコードのEncoderクラスは、バイト[]でエンコードメソッドを提供しません。
回答№2の場合は0
いいえ、バイト配列を受け入れるBarcodeWriterはありません。 しかし、GS1シンボルを解釈するオプションを設定することができます。
var reader = new BarcodeReader { Options = new DecodingOptions { AssumeGS1 = true } };
バーコードリーダーは、FNC1あなたのケースでは、結果の文字列表現へのコードワード "] C142" FNC1表現 "C1"は非常に直観的ではないが、コード128 5.4.6.4のGS1仕様で定義されている。以降のFNC1コードワードはすべてグループセパレータ文字(GS / 0x1D /(char)29)に変換される。
一方、バーコードライターは、グループ区切り文字。 つまり、結果の文字列から同じバーコードを生成する場合は、先頭の "] C1"を "(char)29"に置き換える必要があります。