Esta vez nos enfocamos en una buena librería de uso empresarial. Sin duda aportará gran valor en la comunidad Velneo.

QZXing es una librería intermediaria entre ZXing y Qt. ZXing, abreviatura de («Zebra Crossing»), es una librería de procesamiento de imágenes que permite leer y generar códigos de barras 1D y 2D. Es especialmente buena en el proceso de decodificación, no tanto en la codificación. ZXing dispone de soporte para c++, Java y Android https://github.com/zxing/zxing.

Su licencia es Apache 2.0. https://github.com/zxing/zxing/blob/master/LICENSE

image

Significa que es permisiva, pero tiene que mantener las marcas de uso. También recordaros que QR code está licenciado por Denso Wave, inc.

Por otro lado, QZXing es la librería intermediara entre Qt y ZXing, convirtiéndose en la librería más importante en codificación/decodificación de códigos de barras en Qt https://github.com/ftylitak/qzxing. Su licencia también es Apache 2.0 https://github.com/ftylitak/qzxing/blob/master/LICENSE.

QZXing, en teoría, dispone de soporte para QML (https://github.com/ftylitak/qzxing), pero lo cierto es que hemos tenido que desarrollar un plugin para que funcione correctamente en Velneo. El código fuente del plugin lo podrás encontrar al final del artículo, dentro del fichero comprimido del código fuente, en la carpeta QZXing-master\examples\QMLZXing. De momento solo la hemos probado sobre Win32, por lo que desconocemos como se comportará sobre otras plataformas.

image

QZXing soporta decodificación de códigos de barra de los siguientes tipos:

  • UPC-A
  • UPC-E
  • EAN-8
  • EAN-13
  • ITF
  • Code 39
  • Code 93
  • Code 128 (GS1)
  • Codabar
  • QR Code
  • Data Matrix
  • Aztec (beta)
  • PDF 417

También soporta codificación de tipo:

  • QR Code

Véase el siguiente ejemplo de como usar el decodificador desde QML:

import QZXing 2.3

function decode(preview) {
	imageToDecode.source = preview
	decoder.decodeImageQML(imageToDecode);
}

Image {
	id:imageToDecode
}

QZXing{
	id: decoder
	enabledDecoders: QZXing.DecoderFormat_QR_CODE
	onDecodingStarted: console.log("Decoding of image started...")
	onTagFound: console.log("Barcode data: " + tag)
	onDecodingFinished: console.log("Decoding finished " + (succeeded==true ? "successfully" : "unsuccessfully"))
}

Para la codificación de un código Qr usamos un proveedor de imágenes que se registra al iniciar le plugin. Véase el siguiente ejemplo de como usar el codificador de códigos Qr desde QML:

import QZXing 2.3

TextField {
	id: inputField
	text: "Hello world!"
}

Image{
	source: "image://QZXing/encode/" + inputField.text;
	cache: false;
}

Como podéis apreciar es relativamente sencillo de usar. Pero no os engañéis, es realmente poderoso.

Ejemplos de uso de QZXing en Velneo

En la zona de descargas, podrás encontrar un fichero VIN con cuatro los ejemplos funcionales. Trabajo ha costado conseguir que todos ellos funcionen correctamente, algunos de ellos los hemos tenido que revisar y corregir de forma profunda ya que no eran funcionales en primera instancia.

image

Lector de códigos desde imágenes con soporte Drag N Drop. Permite leer las imágenes mediante Drag N Drop dentro de velneo y obtener el Tag que se encuentre en ellas. Soporta todos los Decorders que veis en la captura.

image

Lector en vivo de etiquetas Qr. Es una implementación que permite leer códigos Qr en vivo. Acerca uno a tu webcam y verás como funciona.

image

Codificación de códigos Qr. Como podéis apreciar, es relativamente sencillo, el problema es que solo soporta códigos Qr.

image

Lector de códigos bajo demanda. Poco que decir… acercas el código a leer, pulsas en Decode y obtendrás un cuadro de dialogo con el código leído.

image

Descargas

Como podéis apreciar, funcionalmente es una gran librería. Os dejamos disponible todo lo necesario para que podáis disfrutar de ella en Velneo 7.22.1.

Recuerda que esta librería tendrás que compilarla para la versión adecuada de tu vClient. Para facilitarte el trabajo, hemos empaquetado la versión para Windows x32 en un descargable. Solo tienes que copiar el contenido dentro de la carpeta Velneo (donde está ubicado el ejecutable del vClient.exe). Asegúrate de que el plugin queda dentro de la carpeta qml del directorio de instalación de Velneo.

También os damos acceso al VIN de todos los ejemplos funcinando en Velneo V7

Con un poquito de trabajo podrás integrarla en tus desarrollos para conseguir grandes mejoras en tus aplicaciones Velneo. Pero, ante todo, no se te olvide respetar la licencia Apache 2.0.

9 Comments

    1. Es genial tenerte cerca. Creo que nos podrás ayudar en entender algunas cuestiones de la implementación.

      Por mi parte, creo que puedo aportar alguna cuestión menor. Nuevos ejemplos QtQuick 2.0, correcciones menores, etc…. Es poca cosa, pero espero que también ayude.

    1. He verificado la descarga y es correcta.

      Requiere de estar registrado y autenticado en nuestro sitio web. Entra con tu usuario y contraseña, accede a esta página y descarga desde los botones correspondientes.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *