{"id":514,"date":"2008-07-30T19:10:17","date_gmt":"2008-07-30T17:10:17","guid":{"rendered":"http:\/\/fabioinvernizzi.com\/blog\/?p=514"},"modified":"2008-12-04T20:04:12","modified_gmt":"2008-12-04T18:04:12","slug":"barcode-2d","status":"publish","type":"post","link":"https:\/\/fabioinvernizzi.com\/blog\/2008\/07\/30\/barcode-2d\/","title":{"rendered":"Barcode 2D"},"content":{"rendered":"<p>Inzigato da dei marchettari ho dato un&#8217;occhiata al mondo dei codici a barre in 2D, in particolare alle possibili applicazioni di community che sembra vadano per la maggiore in giappone.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/fabioinvernizzi.com\/blog\/archives\/2008\/07\/fabulus-qr.png\" alt=\"fabulus-qr\" title=\"fabulus-qr\" width=\"270\" height=\"270\" class=\"alignnone size-full wp-image-519\" \/><\/p>\n<p>La prima cosa che ho scoperto \u00e8 che esistono veramente una marea di codifiche ma  le pi\u00f9 usate sono Datamatrix e, soprattutto, QRcode. Da li a buttar gi\u00f9 due righe in perl il passo \u00e8 stato breve.<br \/>\n(Il modulo perl \u00e8 fatto bene ma non ho capito come mai durante l&#8217;init se il parametro di &#8220;versione&#8221; non \u00e8 definito viene impostato ad 1 mentre pi\u00f9 avanti viene invocata la procedura di calcolo automatico della versione solo se lo stesso non \u00e8 definito&#8230; nel dubbio ho risolto togliendo un &#8220;|| 1&#8221; dall&#8217;init del modulo.)<\/p>\n<p>A questo punto generare QRcode \u00e8 banale, ad esempio con un cgi:<\/p>\n<pre><code>\r\n#!\/usr\/bin\/perl \r\n\r\nuse CGI;\r\nuse GD::Barcode;\r\n\r\nmy $q = new CGI;\r\n\r\nmy $str = 'Hello World!';\r\n\r\nif ($q->param()) { $str = $q->param('s'); }\r\n\r\nmy $oGdBar = GD::Barcode->new('QRcode', \"$str\" , { Ecc => 'M', ModuleSize => 6 });\r\n\r\nprint \"Content-type: image\/png\\n\\n\";\r\nbinmode STDOUT;\r\nprint $oGdBar->plot()->png;\r\n<\/code><\/pre>\n<p>Per chi volesse approfondire sicuramente le pagine pi\u00f9 interessanti che ho trovato <a href=\"http:\/\/en.wikipedia.org\/wiki\/QRcode\">wikipedia<\/a> e la pagina di descrizione dei <a href=\"http:\/\/code.google.com\/p\/zxing\/wiki\/BarcodeContents\">contenuti dei barcode<\/a> dell&#8217;<a href=\"http:\/\/code.google.com\/apis\/chart\/#qrcodes\">implementazione di google<\/a> nelle sue Chart API. Molto interessanti anche le <a href=\"http:\/\/www.denso-wave.com\/qrcode\/aboutqr-e.html\">pagine descrittive di denso-wave<\/a> detentore del marchio.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Inzigato da dei marchettari ho dato un&#8217;occhiata al mondo dei codici a barre in 2D, in particolare alle possibili applicazioni di community che sembra vadano per la maggiore in giappone. La prima cosa che ho scoperto \u00e8 che esistono veramente una marea di codifiche ma le pi\u00f9 usate sono Datamatrix e, soprattutto, QRcode. Da li &hellip; <a href=\"https:\/\/fabioinvernizzi.com\/blog\/2008\/07\/30\/barcode-2d\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Barcode 2D<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ngg_post_thumbnail":0,"footnotes":""},"categories":[2,1],"tags":[48,49,50],"class_list":["post-514","post","type-post","status-publish","format-standard","hentry","category-me","category-floss","tag-barcode","tag-perl","tag-qrcode"],"_links":{"self":[{"href":"https:\/\/fabioinvernizzi.com\/blog\/wp-json\/wp\/v2\/posts\/514"}],"collection":[{"href":"https:\/\/fabioinvernizzi.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fabioinvernizzi.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fabioinvernizzi.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/fabioinvernizzi.com\/blog\/wp-json\/wp\/v2\/comments?post=514"}],"version-history":[{"count":8,"href":"https:\/\/fabioinvernizzi.com\/blog\/wp-json\/wp\/v2\/posts\/514\/revisions"}],"predecessor-version":[{"id":541,"href":"https:\/\/fabioinvernizzi.com\/blog\/wp-json\/wp\/v2\/posts\/514\/revisions\/541"}],"wp:attachment":[{"href":"https:\/\/fabioinvernizzi.com\/blog\/wp-json\/wp\/v2\/media?parent=514"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fabioinvernizzi.com\/blog\/wp-json\/wp\/v2\/categories?post=514"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fabioinvernizzi.com\/blog\/wp-json\/wp\/v2\/tags?post=514"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}