tags:

views:

60

answers:

2

Is there a plain PHP implementation for decoding QR codes?

I have a faux-smartphone. One of those phones that parades as a smartphone but that I can't download any apps for, and I want to create an email service to where I can take a picture of a QR code, MMS it to this email, and the email returns what the QR code contains.

However, the only libraries I've been able to find are in Python (and probably C++), neither of which I can access on my limited hosting environment.

Is there a way to read QR codes using only PHP?

A: 

There appears to be an API in google charts you can pass the image along to: http://code.google.com/apis/chart/docs/gallery/qr_codes.html - but that assumes you have already detected/extracted the QR code from the rest of the image.

HorusKol
The article you have linked to is part of the Google Charts suite to **create** QR Codes, not to read them, as the OP has requested. You send Google the data, and they return an image, not the other way around.
Lucanos
ah - sorry, misread the article... in that case, i guess the answer is 'no'
HorusKol
+2  A: 

I'm not aware of any pure php decoder. Decoding images like this is pretty processor intensive and doing it in a purely interpreted language is challenging.

zxing (http://code.google.com/p/zxing/) provides a decoder implementation in both Java and C++. In theory, it should be possible to link the C++ library as a php extension, though I don't know anything of the mechanics of that. I've done it for Ruby ...

Moreover, zxing does have an online decoder at http://zxing.org/w/decode.jspx. My thinking is that from PHP you can take the image and post it to the webservice and retrieve the decoded data. I don't know the mechanics of making remote web service calls from PHP and how different hosting environments might limit that, though, but it seems reasonable?

smparkes
Nice find with the zxing. I'm honestly looking into it and interpreting a QR Code in PHP, if possible, would be damned silly. Though PHP does have routines for checking the value of a bitmap pixel, it's very unintuitive and is generally used for averaging colors over and area or similar simple mathematical techniques, not finding patterns. Pattern matching would just be so complicated it's meaningless.
steven_desu
I'm sure I can find a way to utilize this with my PHP. Thanks a lot :) This is pretty much exactly what I was looking for in one way or another. :3
Navarr