Itextsharp QRCode to Aspose QRCode

itextsharp 5.5.13で生成したQRCodeを利用しています、
AsposeTotalを購入したため、既存のQRCodeの生成するプログラムをAsposeBarcodeに置き換えしております。両方生成した画像をモバイルでスキャンしたら結果が同じですが、画像が違うように見えるのは困っております。どうしたら画像も同じに生成できるか教えてほしい。

@yyzz

Aspose.Barcodeを使用して生成したQRCodeの画像が異なる理由について、具体的なコードや設定を教えていただけますか?

ItextSharp側設定できるのは列挙型で、EncodeLevelとCharacterしか設定できませんが、
Aspose側でいろいろ同じパラメータを設定しても、最後に生成した画像が違うように見えます、どうしたら同じ画像になるか知りたいです。

EncodeLevel=L
Character=“ISO-8859-1”

@yyzz,

Aspose.BarCode を使用したサンプル (実行可能) コードと生成されたバーコード イメージを共有してください。また、itextsharp によって生成された QRCode プログラムと予想されるバーコード イメージも共有してください。すぐに確認します。

ご返信ありがとうございます。

コンテンツ:247cd1a2e1472dc2baea105584ff1b97

iTextSharp側:

iTextSharp.text.pdf.BarcodeQRCode qrcode = new BarcodeQRCode(“247cd1a2e1472dc2baea105584ff1b97”, 87, 87, null);
iTextSharp.text.Image img1 = qrcode.GetImage();
Document doc = new Document();
try {

   PdfWriter.GetInstance(doc, new FileStream("ItextSharp.pdf", FileMode.Create));
   doc.Open();
   doc.Add(img1);

} catch (Exception ex) {

} finally {

   doc.Close();

}

Aspose側:

using (var generator = new Aspose.BarCode.Generation.BarcodeGenerator(EncodeTypes.QR, “247cd1a2e1472dc2baea105584ff1b97”))

{
generator.Parameters.Barcode.QR.QrErrorLevel = QRErrorLevel.LevelL;
generator.Parameters.Barcode.QR.QrVersion = QRVersion.Version01;
generator.Save(“Aspose.png”);
}

Aspose側はいろいろのパラメータ設定ができますが、どうしても同じ画像が生成してくれないです、中身が見れないのでどこが違うのかよくわかりません。
ItextSharp側はオープンソースであるため、中身のコメントを見るとJIS X 0510 : 2004の仕様に基づいて実装したようです、スキャンしたら結果は同じですが、画像も同じに生成できるような設定を知りたい、あるいは、どうしても同じになれなかったら、原因を教えていただければとても助かります。

よろしくお願いいたします。
itextsharp.png (2.6 KB)
aspose.png (992 バイト)

@yyzz,

サンプル QRCode 画像をありがとうございます。

Aspose.BarCode for .NET API を使用して、ご希望の QRCode 画像 (itextsharp によって生成) に類似した QRCode を生成するためにいくつかのオプションと設定を試しましたが、正確なバーコード画像を生成できませんでした。

お客様のタスクを徹底的に評価する必要があります。 Aspose.BarCode for .NET API で同様の QRCode 画像を生成する方法を検討します。 社内の問題追跡システムで次の新しいチケットを開き、無料サポート ポリシーに記載されている条件に従ってコード スニペットを配信するか、修正します。
問題 ID: BARCODENET-39134

更新が届き次第、お知らせします。

Our implementation is based on ISO/IEC 18004:2006 (with ISO/IEC 18004:2015 partial review).

Aspose.Barcode encodes data in mixed mode with the best compactification modes set (according to ISO 18004 6.4.7, Annex J.2). But itextsharp encodes data in non-effective byte mode (ISO 18004 6.4.5).

As I investigated, itextsharp image is version 3 of QR code (you can see this with this API “QRVersion”). You can obtain almost the same image (difference only in modern mixed mode instead of outdated byte mode) with the following code:

using (var generator = new Aspose.BarCode.Generation.BarcodeGenerator(EncodeTypes.QR, "247cd1a2e1472dc2baea105584ff1b97"))
{
    generator.Parameters.Barcode.QR.QrErrorLevel = QRErrorLevel.LevelL;
    generator.Parameters.Barcode.QR.QrVersion = QRVersion.Version03;
    generator.Save(@"d:\save\rec\aspose.png");
}

or this

using (BarCodeReader reader = new BarCodeReader(@"d:\save\rec\this.bmp", DecodeType.QR))
{
    foreach (BarCodeResult result in reader.ReadBarCodes())
        using (var generator = new Aspose.BarCode.Generation.BarcodeGenerator(EncodeTypes.QR, result.CodeText))
        {
            generator.Parameters.Barcode.QR.QrErrorLevel = result.Extended.QR.QRErrorLevel;
            generator.Parameters.Barcode.QR.QrVersion = result.Extended.QR.QRVersion;
            generator.Save(@"d:\save\rec\aspose.png");
        }
}

ありがとうございました。

ご回答ありがとうございます、
Version03を設定したら、確かにほとんど同じです、違うところの原因は
ミックスモードとバイトモードだからですね、わかりました。
とても助かりました。 :grinning:

@yyzz,

フィードバックをありがとうございます。

提案された QR バージョンがお客様のニーズに合っているとわかって良かったです。さらにご質問やご意見がございましたら、いつでもお気軽にお問い合わせください。

1 Like