2008-10-23 171 views
40

Tìm mã miễn phí/mã nguồn mở hoặc mô tả thuật toán để mã (đơn giản) và giải mã (cứng) mã vạch 2D QR code.Thuật toán mã hóa và giải mã mã QR (mã vạch 2D)?

Nó không có vẻ như một vấn đề tầm thường, nhưng nó rất phổ biến ở Nhật Bản rằng phải có một cái gì đó đã có sẵn ...

+9

Rõ ràng đặc điểm kỹ thuật của Nhật Bản mã QR là miễn phí, nhưng Ủy ban Tiêu chuẩn quốc tế (ISO), đã quyết định để sạc trên 200 Franc Thụy Sĩ cho phiên bản tiếng Anh. Nếu bản tiếng Anh chỉ là bản dịch của người Nhật thì tôi sẽ nói với cái giá đó, nó hoàn toàn phi đạo đức. – helloworlder

+0

Để hiểu được mã số lỗi solomon sậy được sử dụng trong mã qr tham khảo http://math.stackexchange.com/questions/76045/reed-solomon-polynomial-generator –

Trả lời

30

Tôi có một đồng nghiệp người làm việc trên ZXing ("Zebra Crossing").

Đó là một loạt hỗ trợ nền tảng hợp lý.

+2

ZXing trông rất đẹp. –

10

Dưới đây là một thư viện LGPL tốt để mã hóa mã QR libqrencode

Libqrencode là một thư viện C cho dữ liệu mã hóa trong một biểu tượng QR Code, một loại tượng trưng 2D có thể được quét bởi thiết bị đầu cuối tiện dụng như vậy dưới dạng điện thoại di động có CCD. Dung lượng của Mã QR có tối đa 7000 chữ số hoặc 4000 ký tự và rất mạnh mẽ.

Đây là Google code project that decodes QR code - nhằm vào iPhone, nhưng là LGPL và nguồn có sẵn. Nên thích nghi ...

-Adam

+1

Đối với những người muốn mã hóa và giải mã các mã datamatrix (một định dạng mã vạch 2D phổ biến khác) thì http://libdmtx.sourceforge.net/ là một thư viện C mã hóa và giải mã chúng. –

8

PyQrCodec là một thư viện Python để mã hóa mã QR để một PNG và giải mã chúng từ một loạt các định dạng hình ảnh.

+13

Liên kết đó đã chết. –

+0

Đây là một (giống nhau) http://pyqrcode.sourceforge.net/ – prakash

11

(Để đối phó với những yêu cầu về mã QR trong PHP)

Các Google Charts QR chart type có thể làm việc cho bạn, nếu bạn không mong đợi rất nhiều giao thông, hoặc nếu bạn có thể bộ nhớ cache hình ảnh. Nó cực kỳ dễ sử dụng - chỉ cần đặt văn bản để mã hóa trong URL.

2

Bạn có thể sử dụng zbar trực tiếp để giải mã mã qrcode.

#!/usr/bin/python 

from sys import argv 
import zbar 
import Image 


# create a reader 
scanner = zbar.ImageScanner() 

# configure the reader 
scanner.parse_config('enable') 

# obtain image data  
pil = Image.open("base.png").convert('L') 
width, height = pil.size 
raw = pil.tostring() 

# wrap image data 
image = zbar.Image(width, height, 'Y800', raw) 

# scan the image for barcodes 
scanner.scan(image) 

# extract results 
for symbol in image: 
    # do something useful with results 
    print 'decoded', symbol.type, 'symbol', '"%s"' % symbol.data 

# clean up 
del(image)