Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/makiuchi-d/gozxing
Port of ZXing (https://github.com/zxing/zxing) core to pure Go.
https://github.com/makiuchi-d/gozxing
2d-barcodes barcodes golang qrcode-generator qrcode-reader zxing
Last synced: 5 days ago
JSON representation
Port of ZXing (https://github.com/zxing/zxing) core to pure Go.
- Host: GitHub
- URL: https://github.com/makiuchi-d/gozxing
- Owner: makiuchi-d
- License: other
- Created: 2018-05-16T22:08:52.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2023-02-18T07:20:48.000Z (almost 2 years ago)
- Last Synced: 2024-12-22T11:07:34.414Z (12 days ago)
- Topics: 2d-barcodes, barcodes, golang, qrcode-generator, qrcode-reader, zxing
- Language: Go
- Homepage:
- Size: 47.6 MB
- Stars: 569
- Watchers: 16
- Forks: 66
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gozxing A Barcode Scanning/Encoding Library for Go
[![Build Status](https://github.com/makiuchi-d/gozxing/actions/workflows/main.yml/badge.svg)](https://github.com/makiuchi-d/gozxing/actions/workflows/main.yml)
[![codecov](https://codecov.io/gh/makiuchi-d/gozxing/branch/master/graph/badge.svg)](https://codecov.io/gh/makiuchi-d/gozxing)[ZXing](https://github.com/zxing/zxing) is an open-source, multi-format 1D/2D barcode image processing library for Java.
This project is a port of ZXing core library to pure Go.## Porting Status (supported formats)
### 2D barcodes
| Format | Scanning | Encoding |
|-------------|--------------------|--------------------|
| QR Code | :heavy_check_mark: | :heavy_check_mark: |
| Data Matrix | :heavy_check_mark: | :heavy_check_mark: |
| Aztec | :heavy_check_mark: | |
| PDF 417 | | |
| MaxiCode | | |### 1D product barcodes
| Format | Scanning | Encoding |
|-------------|--------------------|--------------------|
| UPC-A | :heavy_check_mark: | :heavy_check_mark: |
| UPC-E | :heavy_check_mark: | :heavy_check_mark: |
| EAN-8 | :heavy_check_mark: | :heavy_check_mark: |
| EAN-13 | :heavy_check_mark: | :heavy_check_mark: |### 1D industrial barcode
| Format | Scanning | Encoding |
|--------------|--------------------|--------------------|
| Code 39 | :heavy_check_mark: | :heavy_check_mark: |
| Code 93 | :heavy_check_mark: | :heavy_check_mark: |
| Code 128 | :heavy_check_mark: | :heavy_check_mark: |
| Codabar | :heavy_check_mark: | :heavy_check_mark: |
| ITF | :heavy_check_mark: | :heavy_check_mark: |
| RSS-14 | :heavy_check_mark: | - |
| RSS-Expanded | | |### Special reader/writer
| Reader/Writer | Porting status |
|------------------------------|--------------------|
| MultiFormatReader | |
| MultiFormatWriter | |
| ByQuadrantReader | |
| GenericMultipleBarcodeReader | |
| QRCodeMultiReader | :heavy_check_mark: |
| MultiFormatUPCEANReader | :heavy_check_mark: |
| MultiFormatOneDReader | |## Usage Examples
### Scanning QR code
```Go
package mainimport (
"fmt"
"image"
_ "image/jpeg"
"os""github.com/makiuchi-d/gozxing"
"github.com/makiuchi-d/gozxing/qrcode"
)func main() {
// open and decode image file
file, _ := os.Open("qrcode.jpg")
img, _, _ := image.Decode(file)// prepare BinaryBitmap
bmp, _ := gozxing.NewBinaryBitmapFromImage(img)// decode image
qrReader := qrcode.NewQRCodeReader()
result, _ := qrReader.Decode(bmp, nil)fmt.Println(result)
}
```### Generating CODE128 barcode
```Go
package mainimport (
"image/png"
"os""github.com/makiuchi-d/gozxing"
"github.com/makiuchi-d/gozxing/oned"
)func main() {
// Generate a barcode image (*BitMatrix)
enc := oned.NewCode128Writer()
img, _ := enc.Encode("Hello, Gophers!", gozxing.BarcodeFormat_CODE_128, 250, 50, nil)file, _ := os.Create("barcode.png")
defer file.Close()// *BitMatrix implements the image.Image interface,
// so it is able to be passed to png.Encode directly.
_ = png.Encode(file, img)
}
```