{"id":594,"date":"2011-09-14T22:36:25","date_gmt":"2011-09-15T01:36:25","guid":{"rendered":"http:\/\/leandroascierto.com\/blog\/?p=594"},"modified":"2011-09-14T22:45:24","modified_gmt":"2011-09-15T01:45:24","slug":"qr-code","status":"publish","type":"post","link":"https:\/\/leandroascierto.com\/blog\/qr-code\/","title":{"rendered":"QR Code"},"content":{"rendered":"<p>Para quienes no\u00a0est\u00e9n\u00a0al tanto de que se trata pueden leer en <a href=\"http:\/\/es.wikipedia.org\/wiki\/C%C3%B3digo_QR\">Wikipedia<\/a>\u00a0sobre este sistema para almacenar informaci\u00f3n en una imagen, el cual es cada ves mas utilizado en diferentes productos y publicidades. hoy en d\u00eda muchos celulares trae una aplicaci\u00f3n para decodificar estas\u00a0im\u00e1genes.<\/p>\n<p>El modulo clase a\u00a0continuaci\u00f3n\u00a0se encarga de Codificar y Decodificar QR Code, \u00a0utilizando dos apis de dos servidores web\u00a0<a href=\"http:\/\/qrserver.com\/\">qrserver.com<\/a> para codificar y\u00a0<a href=\"http:\/\/zxing.org\/w\/decode.jspx\">zxing.org<\/a> para decodificar, si bien esto podr\u00eda hacerse sin estas dependencias me parece que desarrollar dicha tarea no es nada sensilla (teniendo en cuenta que la imagen no siempre\u00a0estar\u00e1\u00a0presentada en forma vertical), \u00a0existen algunas dll para realizar este trabajo pero no\u00a0encontr\u00e9\u00a0ninguna\u00a0compatible\u00a0 para VB6.<\/p>\n<p>En el siguiente proyecto \u00a0encuenta la clase\u00a0ClsQrCode.cls en la que encontraremos las siguientes funciones<\/p>\n<ul>\n<li><strong>GetPictureQrCode<\/strong>: \u00a0esta\u00a0funci\u00f3n\u00a0retorna un StdPicture, el cual se seria de nuestro QR Code codificado, si no retorna ninguna imagen (Is Nothing) \u00a0entonces significa que la funci\u00f3n\u00a0fallo. A continuacion sus parametros.<\/li>\n<\/ul>\n<ol>\n<ol>\n<li>sText: \u00a0 \u00a0Requerido, Es el texto el cual queremos codificar, la clase solo se encarga de texto plano, si quieren pueden agregar los prefijos SMSTO:\u00a0o TEL: etc. segun el caso, pueden ver un poco mas en\u00a0<a title=\"goqr.me\" href=\"http:\/\/goqr.me\/\">goqr.me<\/a><\/li>\n<li>Width: \u00a0 Requerido, Ancho de la imagen (Minimo 10 Px, Maximo 1000 Px)<\/li>\n<li>Height: \u00a0Requerido, Alto de la imagen\u00a0(Minimo 10 Px, Maximo 1000 Px)<\/li>\n<li>Encoding: \u00a0 Opcional, <a href=\"http:\/\/qrserver.com\/api\/documentation\/create-qr-code\/#param_charsetsource\">\u00abUTF-8\u00bb o \u00abISO-8859-1\u00bb<\/a><\/li>\n<li>ErrCorrectionLevel: \u00a0\u00a0Opcional, \u00a0<a href=\"http:\/\/qrserver.com\/api\/documentation\/create-qr-code\/#param_ecc\">\u00abL\u00bb, \u00abM\u00bb, \u00abQ\u00bb, \u00abH\u00bb<\/a><\/li>\n<li>ForeColor: Opcional, Color de los cuadritos<\/li>\n<li>BackColor: \u00a0 Opcional, Color de fondo<\/li>\n<li>Margin: \u00a0 Opcional, Margen (m\u00e1ximo\u00a050, expresado en\u00a0m\u00f3dulos)<\/li>\n<\/ol>\n<\/ol>\n<ul>\n<li><strong>DecodeFromStream<\/strong>: decodifica mediante el array de bits de una imagen. (Dos\u00a0par\u00e1metros\u00a0el primero el array de bits, y el segundo\u00a0debe\u00a0pasarse una variable de tipo string como retorno), si la funci\u00f3n\u00a0tiene\u00a0\u00e9xito\u00a0devuelve True<\/li>\n<li><strong>DecodeFromPicture<\/strong>: decodifica un StdPicture. (Dos\u00a0par\u00e1metros\u00a0el primero el StdPicture, y el segundo\u00a0debe\u00a0pasarse una variable de tipo string como retorno), si la funci\u00f3n\u00a0 tiene\u00a0\u00e9xito\u00a0devuelve True<\/li>\n<li><strong>DecodeFromFile<\/strong>: decodifica desde un archivo de imagen. (Dos\u00a0par\u00e1metros\u00a0el primero el path de la imagen, y el segundo\u00a0debe\u00a0pasarse una variable de tipo string como retorno), si la funci\u00f3n\u00a0tiene\u00a0\u00e9xito\u00a0devuelve True<\/li>\n<li><strong>DecodeFromUrl<\/strong>: decodifica desde la url de una imagen. (Dos\u00a0par\u00e1metros\u00a0el primero el la URL de la imagen, y el segundo\u00a0debe\u00a0pasarse una variable de tipo string como retorno), si la funci\u00f3n tiene\u00a0\u00e9xito\u00a0devuelve True<\/li>\n<\/ul>\n<div><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"QR CODE\" src=\"http:\/\/www.leandroascierto.com\/blog\/imagenes\/QR_Code_VB6.png\" alt=\"QR CODE\" width=\"704\" height=\"363\" \/><\/div>\n<\/p>\n<p align=\"center\"><a href=\"https:\/\/leandroascierto.com\/blog\/descarga.php?url=QR_Code.zip\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" title=\"Descargar\" src=\"https:\/\/leandroascierto.com\/blog\/descarga.php?file=QR_Code.zip\" alt=\"\" width=\"280\" height=\"61\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Para quienes no\u00a0est\u00e9n\u00a0al tanto de que se trata pueden leer en Wikipedia\u00a0sobre este sistema para almacenar informaci\u00f3n en una imagen, el cual es cada ves mas utilizado en diferentes productos y publicidades. hoy en d\u00eda muchos celulares trae una aplicaci\u00f3n para decodificar estas\u00a0im\u00e1genes. El modulo clase a\u00a0continuaci\u00f3n\u00a0se encarga de Codificar y Decodificar QR Code, \u00a0utilizando <a href='https:\/\/leandroascierto.com\/blog\/qr-code\/' class='excerpt-more'>[&#8230;]<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[29],"tags":[35,64,99],"class_list":["post-594","post","type-post","status-publish","format-standard","hentry","category-modulos","tag-gdi","tag-google","tag-qr-code","category-29-id","post-seq-1","post-parity-odd","meta-position-corners","fix"],"_links":{"self":[{"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/posts\/594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/comments?post=594"}],"version-history":[{"count":7,"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/posts\/594\/revisions"}],"predecessor-version":[{"id":596,"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/posts\/594\/revisions\/596"}],"wp:attachment":[{"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/media?parent=594"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/categories?post=594"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/leandroascierto.com\/blog\/wp-json\/wp\/v2\/tags?post=594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}