2010-07-23 5 views
3

Mon application .NET doit décoder les codes à barres 2D au format DataMatrix. À l'origine, j'utilisais une bibliothèque commerciale appelée Tasman.Bars, qui avait de superbes termes de licence libres de droits, des performances impressionnantes et supportait de nombreux types de codes à barres différents ... sauf que sur certaines images, elle se bloquait. Ces images étaient très rares, mais c'était toujours un bug d'arrêt. Malheureusement, au moment où je l'ai rencontré, la bibliothèque n'était plus vendue ou prise en charge, ayant été rachetée par une autre société et remplacée par un produit beaucoup plus cher.Quelqu'un peut-il recommander une bibliothèque de décodage DataMatrix?

J'ai essayé le libdmtx open-source, à la fois la version native (via un wrapper) et le port .NET (DataMatrix.net), et ses performances sont décevantes. Je dois lui donner une valeur de timeout quand il décode, et 1 seconde n'est pas assez longue pour décoder certaines images même sur un quad-core 2,8 GHz. 4 secondes fonctionne mieux, mais c'est une période fastidieuse, et même 10 secondes sont insuffisantes pour une image que j'ai essayée - je suppose qu'elle échoue complètement sur celle-là, même si elle semble visuellement identique à une autre qui fonctionne.

Alors ... des recommandations? Les bibliothèques commerciales fonctionnent bien tant que les redevances sont faibles ou inexistantes.

Répondre

1

Zebra Crossing (http://code.google.com/p/zxing/) a un port partiel vers C#, et je crois que Data Matrix est implémenté. Découvrez http://zxing.googlecode.com/svn/trunk/csharp/datamatrix/ et voyez par vous-même. S'il vous plaît laissez-moi savoir comment il se trouve.

+0

Le support DataMatrix de zxing est de «qualité alpha» et les publications sur la liste de diffusion affirment que le module de détection n'est pas fiable. Je vais l'utiliser dans un produit commercial qui doit être assez solide. –

1

Ceci est une bonne discussion. J'ai quelques commentaires (j'espère utiles) à ajouter:

@godsky: En ce qui concerne la bibliothèque AIPSYS, en 2008, j'ai détecté la présence de symboles libdmtx dans leurs démos binaires, suggérant fortement qu'ils ont simplement obscurci le code, ajouté quelques morceaux et a commencé à charger des centaines de dollars pour cela. J'ai informé AIPSYS de la violation probable de la LGPL, mais ils n'ont jamais répondu. Puisque AIPSYS est une société chinoise, je ne savais pas comment la poursuivre au-delà de cela, sinon enregistrer une plainte sur gpl-violations.org. @Jesse: Les versions actuelles de libdmtx nécessitent souvent un réglage pour obtenir des performances optimales. J'ai entendu des rapports d'images prenant plusieurs secondes pour numériser, mais je peux rarement le reproduire localement. Si vous avez encore l'une de ces images de problème assis autour, j'aimerais en scanner quelques-uns pour voir si je peux reproduire le problème (et éventuellement vous aider dans le processus). Nous avons une nouvelle version dans les travaux qui fonctionnera mieux "out of the box", mais pour l'instant il faut encore un peu d'amour pour obtenir les meilleurs résultats. Clause de non-responsabilité: Même si vos images numérisent rapidement à l'aide de libdmtx natif, je ne peux pas prédire comment cela se traduira en libdmtx-net (le wrapper) ou DataMatrix.net (le port .NET) puisque je n'étais pas impliqué dans ces efforts. Mais j'espère que cela pourrait servir de point de départ.

Questions connexes