QZXing en Velneo
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
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.
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.
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.
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.
Codificación de códigos Qr. Como podéis apreciar, es relativamente sencillo, el problema es que solo soporta códigos Qr.
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.
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.
Un gran trabajo.
Gracias por compartir.
Saludos.
Julián.
Jorge, buen trabajo.
Gracias por compartir vuestras experiencias con nosotros.
Saludos
Impresionante.
Eres un crack, y no solo por el trabajo, sino además por compartirlo
Gracias Jorge
Soy el creador de QZXing y estoy a tu disposición para cualquier duda
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.
Excelente plugin Jorge, Saludos desde México.
Hola.
El enlace no deja descargar. Dice «Sin acceso» aunque estoy registrado.
Saludos.
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.