VimeoVimeo
RSSRSS
5.00 / 001

Odczytywanie kodu QR

Banner

Czym jest kod QR?

QR Code (ang Quick Response) jest dwuwymiarowym kodem kreskowym, opracowanym w 1994 roku przez japońską firmę Denso-Wave. Już jakiś czas obcuję z tymi kodami i mogę powiedzieć, że w odróżnieniu od standardowych kodów kreskowych, ich skuteczność odczytu jest bardzo wysoka (nawet w przypadku gdy kod jest obrócony lub w pewnym stopniu uszkodzony). Ten ostatni przypadek bardzo często zdarza się w faksach, gdzie nie każdy ma na tyle dobre urządzenie, aby przesłać oznaczony dokument bez charakterystycznych szumów lub poprzecznych śmieci.

Tak wygląda zakodowany ciąg znaków:
"To jest tekst zakodowany kodem QR"

Wygenerowano za pomocą : http://zxing.appspot.com/generator/

Po co to wszystko?

Zastosowań kodu QR jest bardzo wiele, można wykorzystać je do oznaczania dokumentów, produktów, kodowania adresów URL oraz wizytówek vCard. Kod QR stał się bardzo popularny w dobie smartfonów posiadających specjalny czytnik, który pozwala na błyskawiczne zapisanie kontaktu, adresu URL itp.

Osobiście wykorzystuję takie kody do oznaczania dokumentów, które druga strona podpisuje i odsyła faksem lub zwykłym skanem. Zarówno faks jak i skan wędruje na specjalną skrzynkę pocztową, gdzie zostaje zeskanowany i rozpoznany przez skrypt. Oczywiście można robić to ręcznie, ale kiedy takich dokumentów przychodzi kilkanaście lub kilkadziesiąt, pomoc jest niezastąpiona.

Co potrzebujemy?

Kompilacja ZXing

Pierwsze co potrzebujemy to zestaw narzędzi Apache Ant, które pozwolą nam przygotować program ZXing. Zakładam, że każdy ogarnięty użytkownik wie jak je zainstalować. Ponieważ istnieje ogromna ilość systemów zarządzania pakietami w dystrybucjach, pozwolę sobię tą kwestię pominąć. Z góry uznam, że takie narzędzie już posiadacie :)

  1. unzip ZXing-1.7.zip
  2. cd zxing
  3. ant -f core/build.xml
  4. ant -f javase/build.xml

Jeśli wszystko pójdzie gładko otrzymamy dwa pliki zxing/core/core.jar oraz zxing/javase/javase.jar.

Następnie tworzymy katalog naszego skryptu. Np.:

  1. qrdecoder/
  2. |-- java
  3. |   |-- core.jar
  4. |   `-- javase.jar
  5. |-- scan.sh
  6. `-- test.png

Zawartość skryptu scan.sh

  1. #!/bin/sh
  2.  
  3. DIRECTORY=$(cd `dirname $0` && pwd)
  4.  
  5. java -cp $DIRECTORY/java/javase.jar:$DIRECTORY/java/core.jar \
  6. com.google.zxing.client.j2se.CommandLineRunner $1

Uruchomienie

Teraz już wystarczy tylko wydać odpowiednie polecenie:

  1. scan.sh test.png

W odpowiedzi otrzymamy następujący komunikat:

  1. file:/home/santyago/qrdecoder/test.png (format: QR_CODE, type: TEXT):
  2. Raw result:
  3. To jest tekst zakodowany kodem QR
  4. Parsed result:
  5. To jest tekst zakodowany kodem QR
  6. Found 4 result points.
  7.   Point 0: (75.5,273.5)
  8.   Point 1: (75.5,75.5)
  9.   Point 2: (273.5,75.5)
  10.   Point 3: (246.5,246.5)

Jak widać kod QR został poprawnie odnaleziony i odczytany. Zwracany komunikat możemy sobie przefiltrować i wykorzystać w dowolnym celu. Dekoder radzi sobie doskonale w skanowaniu kodów, które znajdują się wśród innych treści jak tekst czy grafika.

Dla leniwców mały gotowiec : Pobierz qrdecoder.tar.gz

Podziel się tym wpisem : Odczytywanie kodu QR

Komentarze (1)

Domker_ / 26 cze 2011 / 11:54 Strona www «

"..popularny w dobie smartfonów posiadających specjalny czytnik"
Nie tylko na smartfonach, używam również na prostym fonie z Java. Testowałem wiele aplikacji, ale najlepsza według mnie to i-nigma -> darmowa i świetnie sobie radzi z rozpoznawaniem kodów QR. Brak mi niestety tylko prostego generatora :P

Opera 9.80 / Windows Seven / Warszawa (mazowieckie) Registered user

Napisz komentarz

Jeśli piszesz po raz pierwszy, komentarz pojawi się dopiero po akceptacji. Kolejne komentarze będą umieszczane automatycznie. Proszę o komentarze wyłącznie związane z tematyką wpisów. Zauważone błedy proszę kierować na adres e-mail, który można znaleźć na stronie "Kontakt". Zastrzegam sobie prawo do kasowania lub nie akceptacji komentarzy, które naruszają ogólne zasady dobrego wychowania lub nie dotyczą publikowanej treści. Twój adres e-mail nie będzie wyświetlany w komentarzach.

Podstrony

Blog Fotografia Czytelnicy Kontakt Changelog Geolokalizacja TrackIP

Z prawej strony

  • 26 kwi 2012Paczki KDE 4.8.2 dla Slackware

    Dostępne są paczki KDE 4.8.2 dla Slackware 13.37. Źródła i binarki można pobarć z tego miejsca.

  • 29 wrz 2011Paczki KDE 4.6.5 dla Slackware

    Dostępne są paczki KDE 4.6.5 dla Slackware 13.37. Źródła i binarki można pobarć z tego miejsca.

  • 29 wrz 2011GNOME 3.2 już dostępny

    Informacje o wydaniu GNOME 3.2

Reklama

Popularne wpisy (ostatnie 7 dni)

Kategorie wpisów

Nuta tygodnia

Nuta tygodnia #9

Poprzednie nuty

Facebook

GooglePlus

Lubię odwiedzać

Warte odnotowania

Software monitor

2012-05-12 : Kernel (3.x) 3.3.6 75,3 MB 2012-05-11 : Wine 1.5.4 19,3 MB 2012-04-15 : Apache 2.4.2 3,9 MB 2011-08-04 : Kernel (2.6) 2.6.39.4 72,6 MB

Czytelnicy online

  • Aktualna liczba czytelników : 8